韩顺平java作业
最新韩顺平java笔记整理幻灯片课件
servlet/jsp开发工具
普通的文本编辑器notepad,uedit32 集成开发工具jcreator,jbuilder,eclipse,editplus,netbean
servlet/jsp运行环境
Tomcat是一个免费的开源的servlet容器,它是Apache基金会的 Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司 及个人共同开发而成。
java.io.OutputStream
javax.servlet.ServletOutput
ng.Throwable
javax.servlet.UnavailableException
ng.Exception javax.servlet.ServletException
servlet中操作数据库
servlet操作数据库注意事项 需要将连接数据库的jar包,拷贝到tomcat服务器 具体有两种方法: 1)将jar包拷贝到tomcat目录下的lib文件夹里 2)在webapps目录的WEB-INF文件下建立一个lib文件夹,然后将 jar包拷贝到该文件夹下
4.因为session的各个属性要占用服务器的内存,因此软件公司都 是在迫不得已的情况下才使用
cookie vs session
1.存在的位置 cookie保存在客户端,session保存在服务器端 2.安全性 比较而言,cookie的安全性比session要弱 3.网络传输量 cookie通过网络在客户端与服务器端传输,而session保存在服务 器端,不需要传输
2.开发servlet(引入Tomcat文件夹下lib文件夹里的servlet-api.jar )
3.部署你的servlet(servlet开发流程)
韩顺平JAVA 对象数组代码 整理
//四只狗,分别姓名,重量。
求总重以及平均重量。
package com.test1;import java.io.*;public class Demo5_2 {public static void main(String[] args) throws Exception{ //定义一个可以存放四只狗的对象数组Dog dogs[]=new Dog[4];//给各个狗赋初值/*dogs[0]=new Dog();dogs[0].setName("花花");dogs[0].setWeight(4.5f);*///从控制台输入InputStreamReader isr=new InputStreamReader(System.in);BufferedReader br=new BufferedReader(isr);for(int i=0;i<4;i++){dogs[i]=new Dog();System.out.println("请输入第"+(i+1)+"只狗狗名:");String name=br.readLine();//将名字赋给对象dogs[i].setName(name);System.out.println("请输入第"+(i+1)+"只狗的体重:");String s_weight=br.readLine();float weight=Float.parseFloat(s_weight);//将体重赋给对象dogs[i].setWeight(weight);}//计算总体重float allWeight=0;for(int i=0;i<4;i++){allWeight+=dogs[i].getWeight();}//计算平均体重float avgWeight=allWeight/dogs.length;System.out.println("总体重="+allWeight+" "+"平均体重="+avgWeight);}}class Dog{private String name;public String getName() {return name;}public void setName(String name) { = name;}public float getWeight() {return weight;}public void setWeight(float weight) { this.weight = weight;}private float weight;}。
韩顺平java图形界面编程共41页
▪
26、要使整个人生都过得舒适、愉快,这是不可能的,因为人类必须具备一种能应付逆境的态度。——卢梭
▪
27、只有把抱怨环境的心情,化为上进的力量,才是成功的保证。——罗曼·罗兰
▪
28、知之者不如好之者,好之者不如乐之者。——孔子
▪
29、勇猛、大胆和坚定的决心能够抵得上武器的精良。——达·芬奇
▪
30、意志是一个强壮的盲人,倚靠在明眼的跛子肩上。——叔本华
谢谢!
41
韩顺平java图形界面编程
36、“不可能”这个字(法语是一个字 ),只 在愚人 的字典 中找得 到。--拿 破仑。 37、不要生气要争气,不要看破要突 破,不 要嫉妒 要欣赏 ,不要 托延要 积极, 不要心 动要行 动。 38、勤奋,机会,乐观是成功的三要 素。(注 意:传 统观念 认为勤 奋和机 会是成 功的要 素,但 是经过 统计学 和成功 人士的 分析得 出,乐 观是成 功的第 三要素 。
第六讲 韩顺平Java核心编程 22~26
1.集合框架√2.泛型√3.异常√1.掌握常用的集合类(接口)2.充分理解什么是泛型3.掌握java中的异常■一个问题?前面我们学习了数组,充分体会到数组的优越性,就是可以存储同一类型的数据,但是我们假设有这样的需求,大家看看如何解决?请做一个公司职员薪水管理系统,要求完成如下功能:①当有新员工时,将该员工加入到管理系统①可以根据员工号,显示该员工的信息.②可以显示所有员工信息③可以修改员工的薪水⑤当员工离职时,将该员工从管理系统中删除⑥可以按照薪水从低到高顺序排序【思考题】⑦可以统计员工的平均工资和最低和最高工资.■问题分析当然,我们可以使用数组来解决,可是用数组的话,有什么问题,我们来看看:■解决之道-链表或是集合类我们想,如果有这样一种数组,它可以动态的改变就好了,java的设计者为我们提供了一系列的集合类,我们来看看.■解决之道-链表或是集合类我们想,如果有这样一种数组,它可以动态的改变就好了,java的设计者为我们提供了一系列的集合类,我们来看看.■解决之道-链表或是集合类■使用从上面的图可以看出java集合类主要有以下几种: List结构的集合类ArrayList类, LinkedList类, Vector类,Stack类Map结构的集合类HashMap类,Hashtable类Set结构的集合类HashSet类,TreeSet类Queue结构的集合Queue接口■使用我们给大家举几个案例来看看集合类的常用方法:【Demo6_1.java】和【Demo7_3.java】■具体应用在我们熟悉了一些集合类的基本用法后,我们来解决前面提出的公司职员薪水管理系统。
首先我们使用ArrayList这个集合类.案例【Demo7_2.java】■ArrayList和Vector的区别ArrayList与Vector都是java的集合类,都可以用来存放java对象,这是他们的相同点,但是他们也有区别:一.同步性:Vector是同步的。
java韩顺平30天笔记
java韩顺平30天笔记《Java韩顺平30天笔记》是一本由韩顺平编写的Java学习笔记,旨在帮助初学者快速入门Java编程语言。
下面我将从多个角度全面地回答你关于这本书的问题。
首先,这本书的作者是韩顺平,他是一位在Java编程领域有着丰富经验的专家。
他以通俗易懂的语言和实例讲解,使得读者能够轻松理解Java的基础知识和核心概念。
《Java韩顺平30天笔记》的主要特点是系统性和实用性。
它按照学习的顺序和难度,分为30个章节,每天学习一章,共计30天。
通过每天的学习和实践,读者可以逐步掌握Java的基础语法、面向对象编程、异常处理、集合框架、多线程编程等重要知识点。
这本书的内容涵盖了Java编程的方方面面。
它从最基础的Hello World程序开始,逐步介绍了变量、运算符、流程控制语句、数组、方法、面向对象的概念、继承、多态等核心知识。
此外,它还介绍了常用的Java标准库,如集合框架、IO流、异常处理等。
书中还包含了大量的实例和练习题,帮助读者巩固所学知识。
除了内容丰富实用,这本书的风格也值得一提。
韩顺平采用了通俗易懂的语言,避免了过多的专业术语和复杂的概念解释。
他通过生动的例子和图表,将抽象的概念转化为具体的实践,帮助读者更好地理解和应用所学知识。
然而,需要注意的是,《Java韩顺平30天笔记》虽然是一本很好的入门教材,但它并不能涵盖Java编程的所有方面。
Java是一门广泛应用于软件开发的编程语言,其应用领域非常广泛,包括Web开发、移动应用开发、大数据处理等。
因此,如果你想深入学习Java并应用于实际项目中,可能需要进一步学习其他相关的书籍和教材。
总结起来,《Java韩顺平30天笔记》是一本适合初学者入门的Java学习笔记。
它的系统性和实用性使得读者能够在30天内快速掌握Java的基础知识。
然而,要想深入学习和应用Java,可能需要进一步学习其他相关的书籍和教材。
希望我的回答能够对你有所帮助。
韩顺平的java入门到精通中serversql笔记(包括emp表和dept表)(linux的mysql版)
韩顺平的java教程中数据库的源代码(mysql版)一:建库和建表:1.创建数据库:create database lsydb1 default character set utf8;use lsydb1;2.创建表(dept):create table dept (deptno int primary key, dname nvarchar(30), loc nvarchar(30)) default character set utf8; 3.创建表(emp):create table emp ( empno int primary key, ename nvarchar(30), job nvarchar(30), mgr int , hiredate datetime, sal decimal(6.2), comm decimal(6.2), deptno int ,foreign key(deptno) references dept(deptno)) default character set utf8;4.向dept表插入数据(先插dept再插emp):insert into dept (deptno, dname, loc)values (10, 'ACCOUNTING', 'NEW YORK'),(20, 'RESEARCH', 'DALLAS'),(30, 'SALES', 'CHICAGO'),(40, 'OPERATIONS', 'BOSTON');dept表如下:+--------+------------+----------+| deptno | dname | loc |+--------+------------+----------+| 10 | ACCOUNTING | NEW YORK || 20 | RESEARCH | DALLAS || 30 | SALES | CHICAGO || 40 | OPERATIONS | BOSTON |+--------+------------+----------+5.向emp表插入数据insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values(7369,'SMITH','CLERK',7902,'1980-12-17',800.00,NULL,20);insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values(7499,'ALLEN','SALESMAN',7698,'1981-2-20',1600,300,30);insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values ( 7521, 'WARD', 'SALESMAN', 7698, '1981-2-22', 1250, 500, 30);insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values ( 7566, 'JONES', 'MANAGER', 7839, '1981-4-2', 2975, null, 20);insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values ( 7654, 'MARTIN', 'SALESMAN', 7698, '1981-9-28', 1250, 1400, 30);insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values ( 7698, 'BLAKE', 'MANAGER', 7839, '1981-5-1', 2850, NULL, 30);insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values ( 7782, 'CLARK', 'MANAGER', 7839, '1981-6-9', 2450, NULL, 10);insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values ( 7788, 'SCOTT', 'ANALYST', 7566, '1987-4-19', 3000, NULL, 20);insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values ( 7839, 'KING', 'PRESIDENT', NULL, '1981-11-17', 5000, NULL, 10);insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values ( 7844, 'TURNER', 'SALESMAN', 7698, '1981-9-8', 1500, 0, 30);insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (7876, 'ADAMS', 'CLERK', 7788, '1987-5-23', 1100, NULL, 20);insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (7900, 'JAMES', 'CLERK', 7698, '1981-12-3', 950, NULL, 30);insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values ( 7902, 'FORD', 'ANALYST', 7566, '1981-12-3', 3000, NULL, 20);insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (7934, 'MILLER', 'CLERK', 7782, '1982-1-23', 1300, NULL, 10);emp表:+-------+--------+-----------+------+---------------------+------+------+--------+| empno | ename | job | mgr | hiredate | sal | comm | deptno |+-------+--------+-----------+------+---------------------+------+------+--------+| 7369 | SMITH | CLERK | 7902 | 1980-12-17 00:00:00 | 800 | NULL | 20 || 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 00:00:00 | 1600 | 300 | 30 || 7521 | WARD | SALESMAN | 7698 | 1981-02-22 00:00:00 | 1250 | 500 | 30 || 7566 | JONES | MANAGER | 7839 | 1981-04-02 00:00:00 | 2975 | NULL | 20 || 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 00:00:00 | 1250 | 1400 | 30 || 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 00:00:00 | 2850 | NULL | 30 || 7782 | CLARK | MANAGER | 7839 | 1981-06-09 00:00:00 | 2450 | NULL | 10 || 7788 | SCOTT | ANALYST | 7566 | 1987-04-19 00:00:00 | 3000 | NULL | 20 || 7839 | KING | PRESIDENT | NULL | 1981-11-17 00:00:00 | 5000 | NULL | 10 || 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 00:00:00 | 1500 | 0 | 30 || 7876 | ADAMS | CLERK | 7788 | 1987-05-23 00:00:00 | 1100 | NULL | 20 || 7900 | JAMES | CLERK | 7698 | 1981-12-03 00:00:00 | 950 | NULL | 30 || 7902 | FORD | ANALYST | 7566 | 1981-12-03 00:00:00 | 3000 | NULL | 20 || 7934 | MILLER | CLERK | 7782 | 1982-01-23 00:00:00 | 1300 | NULL | 10 |+-------+--------+-----------+------+---------------------+------+------+--------+二.基本查询操作:1.如何查询工资在2000到2500的员工情况select * from emp where sal> 2000 and sal < 2500; select * from emp where sal between 2000 and 2500; between是取两边的包括2000和2500.2.模糊查询:显示首字母为S的员工的姓名和工资select ename ,sal from emp where ename like “s%”;3.显示empno为123,345,800..的雇员情况。
韩顺平Java(持续更新中)
韩顺平Java(持续更新中)原创上课笔记,转载请注明出处第⼀章⾯向对象编程(中级部分) PDF为主1.1 IDEA删除当前⾏,ctrl+y复制当前⾏,ctrl+d补全代码,alt+/添加或者取消注释,ctrl+/导⼊该⾏需要的类,alt+enter快速格式化代码,ctrl+ALT+L快速运⾏程序,alt+r(⾃⼰设置)⽣成构造器等,alt+insert查看⼀个类的层级关系,ctrl+H,继承有⽤(光标放在类名上)快速定位某个⽅法的位置,ctrl+B(ctrl+⿏标点击)⾃动分配变量,main⽅法中,.var,例如new Scanner(System.in).var查看快捷键模板:Live Templates (例如,fori)1.2 Object类详解(equals、==、hashCode等)所有类都实现了Object类,都能使⽤Object类的⽅法。
1.2.1 ==运算符基本类型—>判断值是否相等引⽤类型—>判断地址是否相等指向同⼀个地址,结果为true1.2.2 equals()⽅法1.2.2.1 基本介绍Object的equals()⼀⽬了然,==运算符,⽤来判断地址是否相等⽽String等类的equals()被重写了,⽤来判断内容是否相等(根据需求,判断内容相等的标准也是可能会有所改变的)如何重写equals⽅法:Person person1 = new Person("jack", 10, '男');Person person2 = new Person("jack", 20, '男');System.out.println(person1.equals(person2));//假,如果没有重写Person类的equals⽅法,这⾥的equals⽅法调⽤的Object的(即,判断的是地址)⽰例代码://重写Object 的 equals⽅法public boolean equals(Object obj) {//判断如果⽐较的两个对象是同⼀个对象,则直接返回trueif(this == obj) {return true;}//类型判断if(obj instanceof Person) {//是Person,我们才⽐较//进⾏向下转型, 因为我需要得到obj的各个属性Person p = (Person)obj;return .equals() && this.age == p.age && this.gender == p.gender;}//如果不是Person ,则直接返回falsereturn false;}1.2.2.2 课堂练习第三个输出:因为Person并没有重写equals,所以这⾥调⽤的equals⽅法是Object的,判断地址是否相同的,⽽这两个新的对象肯定不相等,所以返回false 这道题需要注意的是,基本数据类型的==运算符是判断内容的1.2.3 hashCode()⽅法1.2.4 toString()⽅法全类名:包名+类名/**Object的toString() 源码(1)getClass().getName() 类的全类名(包名+类名 )(2)Integer.toHexString(hashCode()) 将对象的hashCode值转成16进制字符串*/public String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode());}1.2.5 finalize()⽅法public class Finalize_ {public static void main(String[] args) {Car bmw = new Car("宝马");//这时 car对象就是⼀个垃圾,垃圾回收器就会回收(销毁)对象, 在销毁对象前,会调⽤该对象的finalize⽅法//,程序员就可以在 finalize中,写⾃⼰的业务逻辑代码(⽐如释放资源:数据库连接,或者打开⽂件..)//,如果程序员不重写 finalize,那么就会调⽤ Object类的 finalize, 即默认处理//,如果程序员重写了finalize, 就可以实现⾃⼰的逻辑bmw = null;System.gc();//主动调⽤垃圾回收器System.out.println("程序退出了....");}}class Car {private String name;//属性, 资源。
韩顺平java全部内容笔记
韩顺平java全部内容笔记韩顺平是一位伟大的计算机科学家,他的Java全部内容笔记,是学习Java的非常好的资料。
该笔记共有近1000页,内容全面详细,涵盖了Java的各个方面,以下是简单介绍:第一部分:Java基础1. Java入门:简介、JDK、Java开发环境的搭建、Hello World程序等。
2. 变量与常量:Java的数据类型、变量的定义与使用、常量的定义与使用等。
3. 运算符:算术运算符、赋值运算符、比较运算符、逻辑运算符等。
4. 控制流程:if语句、switch语句、for循环、while循环、do-while循环等。
5. 数组:一维数组、二维数组、数组排序、数组查找等。
6. 方法:方法的定义与使用、传递参数、返回值等。
7. 面向对象:面向对象的基本概念、类的定义与使用、封装、继承、多态等。
8. 类与对象:类与对象的关系、构造方法、对象成员变量、对象的引用等。
9. 抽象类与接口:抽象类的定义与使用、抽象类与普通类的区别、接口的定义与使用、接口的实现等。
10. 异常处理:异常的概念、异常的分类、异常处理的机制、自定义异常等。
11. 泛型:泛型的定义与使用、泛型类、泛型方法、泛型限定等。
12. 多线程:线程的概念、线程的创建与启动、线程的生命周期、线程的同步、线程通信等。
13. 反射:反射的概念、反射的使用、反射的用途、动态代理等。
14. 注解:注解的概念、注解的使用、自定义注解等。
15. 枚举:枚举的概念、枚举的使用、枚举的用途等。
16. IO流:IO流的基本概念、字节流、字符流、文件读写、序列化等。
17. 网络编程:网络编程的基本概念、Socket编程、服务器与客户端、TCP/UDP等。
18. 数据库编程:数据库的基本概念、JDBC编程、SQL语句、事务等。
19. 集合框架:集合框架的基本概念、ArrayList、LinkedList、HashSet、HashMap 等。
20. JavaWeb编程:Servlet编程、JSP编程、Struts框架、Spring框架、Hibernate 框架等。
韩顺平java IO笔记
java IO编程
目标
1、理解文件流的基本概念
2、掌握文件编程方法
3、把握字节流和字符流
4、完成坦克大战退出存盘
坦克游戏存盘需求
能够存盘退出游戏,下次再打开时可以恢复上次的状态
解决之道:文件、数据库
程序员可以通过在退出游戏时,
把消灭的坦克数和各个坦克的坐标保存到文件
或者数据库中,当下次游戏开始时从文件或数据库中读取数据恢复文件和文件流的关系
如何判断是输入流还是输出流?
以内存为参照,如果数据向内存流动,是输入流
反之,是输出流
java io流继承关系表
java流分类
使用File类处理文件对象(重要,基础)构造方法
具体方法参考文档创建文件
创建文件夹
遍历文件夹下的文件
使用FileInputStream类读取文件
用FileOutputStream从键盘接收用户输入内容写出到文件里
使用字节流拷贝图片
45讲15分。
韩顺平循序渐进学java从入门到精通(全知识点笔记整理)
Java韩顺平笔记第1讲内容介绍.项目演示.原理剖析1. 课程包括:java面向对象编程,java图形界面,java数据库编程,java文件i/o流,java网络编程,java的多线程2. Java历史:1990 sun 启动绿色计划 1992 创建 oak语言—> java1994 gosling 参加硅谷大会演示java功能震惊世界 1995 sun 正式发布java第一个版本,目前最新的是jdk7.03. java开发工具:记事本,jcreator,jbuilder,netbean,eclipse4. jdk包括:jre(java运行环境)java的工具:编译器javac.exe解释执行器java.exe java的类库:3600多个,常用的150多个5. 第一个程序://功能:显示―HelloWorld‖//public:表示类是公共的,一个文件中只有一个public类 //class:表示这个是一个类//HelloWorld:类名(公共类的类名,必须和文件名一样)public class HelloWorld {//一个主函数,程序的入口 public static void main (String args[]) {//执行语句System.out.println("helloWorld!"); } }6. Java源程序(.java文件)——>java字节码文件(.class文件)——>由解释执行器(java.exe)将字节码文件加载到java虚拟机(jvm)——>字节码文件(.class)就会在java虚拟机中执行l,average); } }第2讲变量.数据类型1. 在java里面int占4个字节,long占8个字节2. Java基本数据类型:整数:(byte一个字节:-128---127 int四个字节:-2147483648---+2147483647short两个字节:-32768---+32767 long八个字节:)小数(浮点):float double布尔:boolean字符:char(两个字节,可以存放汉字, char test1 ='中';)引申到字符串(类)3.在java中对char进行运算的时候,直接是当做ASCII码对应的整数4.数据不能从高精度到低精度的转换Byte<short<int<long<float<doublefloat a=3.4;是过不去的,在java中小数默认是double(双精度)的应该写成是float a=3.4f;不过可以强制转换:int a=(int)1.2; intb=(int)1.95. int a=1;int b=a+1.2; a先是往高精度转换,然后赋给b,就报错改成int a=1;double b=a+1.2; 或者int a=1;float b=a+1.2f; 就解决了第4讲流程控制1. switch case语句中,switch条件表达式的数据类型应该和后面case的类型一致2. switch case语句中,可用的数据类型主要是:byte short int char enum第5讲类与对象1. 面向对象编程-类与对象类名首字母大写类里面的元素叫类的成员变量/属性2. 类的定义package 包名;class 类名extends 父类implements接口名{成员变量;构造方法;成员方法;}3. 如何创建对象:先声明再创建Cat cat1;cat1=new Cat();一步到位Cat cat1 =new Cat();4. 引用传递类似于指针一样第8讲this 类变量1. this属于类的对象的而不是属于类的2. 5this不能在类的外部使用,只能在类定义时候使用!3. 可以用类名直接访问静态变量第9讲类方法封装1.类变量是该类的所有对象共享的对象,一改全改了2.定义语法:访问修饰符static 数据类型变量名3. public class Demo9{static int i=1;static{System.out.println("zhixingyicile");i++;}//会自动执行一次,也只有一次public Demo9(){System.out.println("ffffffff");i++;}public static void main(String args[]){Demo9 t1=new Demo9();System.out.println(Demo9.i);Demo9 t2=new Demo9();System.out.println(i);}}4.类方法(静态方法、静态函数):属于所有对象实例的5.Java中:类变量(static)原则上用类方法(static)去访问;类方法中不能访问非静态变量,就是非类变量,但是普通的成员方法可以访问静态变量(类变量)使用:类名.类方法名对象名.类方法名6.非类变量就是实例变量,属于每个对象自己的7.Java面向对象编程的三(四)大特征:封装、继承、多态(、抽象)8.抽象:把一类事物的共有的属性和行为提取出来,形成一个物理模板,此研究问题的方法就是抽象9.封装:把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。
韩顺平坦克源代码
/** 坦克游戏* 1.画出坦克* 2.我的坦克可以移动* 3.可以发射子弹(连发5* 4.当我的坦克子弹击中敌人坦克时候,敌人坦克消失(爆炸效果)* 5.敌人坦克可以随机移动* 6.敌人坦克子弹可以击中我的坦克* 7.防止敌人重叠运动* 8.可以分关* 8.1做一个面板开始的panel,他是空的* 8.2可以闪烁* 9.可以在玩游戏的时候暂停和继续(自己慢慢努力吧)?* 10.可以记录玩家成绩9* 9.1用文件流* 9.2单写一个记录类* 9.3显示分数。
自己写。
讲得的代码是错得?* 9.4完成保存击毁敌人坦克的数目* 9.5保存共击毁了多少辆坦克* 9.6退出时候记录坦克的数量方向,并可以恢复* 11.java如何操作声音文件* 11.1*/package com.test1;import javax.imageio.ImageIO;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.io.File;import java.util.*;public class MyTanKeGanme_5 extends JFrame implements ActionListener{JMenuBar jmb=null;JMenu jm=null;JMenuItem jmi1=null;JMenuItem jmi2=null;JMenuItem jmi3=null;JMenuItem jmi4=null;JMenuItem jmi5=null;JMenuItem jmi6=null;MyStartPanel msp=null;MyPanel mp=null;public static void main(String[] args) {MyTanKeGanme_5 t=new MyTanKeGanme_5();}//构造函数public MyTanKeGanme_5(){// mp=new MyPanel();// Thread t=new Thread(mp);// t.start();// this.add(mp);// this.addKeyListener(mp);jmb=new JMenuBar();jm=new JMenu("游戏(G)");jm.setMnemonic('G');jmi1=new JMenuItem("新游戏(N)");jmi1.setMnemonic('n');jmi1.addActionListener(this);jmi1.setActionCommand("gameatart");jmi2=new JMenuItem("暂停(S)");jmi2.setMnemonic('S');jmi2.addActionListener(this);jmi2.setActionCommand("stop");jmi3=new JMenuItem("继续(C)");jmi3.setMnemonic('C');jmi3.addActionListener(this);jmi3.setActionCommand("continue");jmi4=new JMenuItem("退出(E)");jmi4.setMnemonic('E');jmi4.addActionListener(this);jmi4.setActionCommand("exit");jmi5=new JMenuItem("存盘退出(Q)");jmi5.setMnemonic('Q');jmi5.addActionListener(this);jmi5.setActionCommand("exitSave");jmi6=new JMenuItem("返回上次游戏(R)");jmi6.setMnemonic('R');jmi6.addActionListener(this);jmi6.setActionCommand("returnPast");jmb.add(jm);jm.add(jmi1);jm.add(jmi2);jm.add(jmi3);jm.add(jmi4);jm.add(jmi5);jm.add(jmi6);msp=new MyStartPanel();Thread t=new Thread(msp);t.start();this.add(msp);this.setJMenuBar(jmb);this.setSize(600,500);this.setLocation(700,300);// this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭格式this.setVisible (true);}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getActionCommand().equals("gameatart")){mp=new MyPanel("newGame");Thread t=new Thread(mp);t.start();//删除旧的面板this.remove(msp);//加入新的this.add(mp);this.addKeyListener(mp);//显示刷新this.setVisible(true);}else if(e.getActionCommand().equals("stop")){}else if(e.getActionCommand().equals("continue")){}else if(e.getActionCommand().equals("exit")){Record.setRecord();System.exit(0);}else if(e.getActionCommand().equals("exitSave")){Record.setEts(mp.ets);Record.keepRecAndEnmyTank();System.exit(0);}else if(e.getActionCommand().equals("returnPast")){ mp=new MyPanel("re");Thread t=new Thread(mp);t.start();//删除旧的面板this.remove(msp);//加入新的this.add(mp);this.addKeyListener(mp);//显示刷新this.setVisible(true);}}}//开始关卡页面,提示作用class MyStartPanel extends JPanel implements Runnable{ int times=0;public void paint(Graphics g){super.paint(g);g.fillRect(0, 0, 400, 300);if(times%2==0){g.setColor(Color.YELLOW);Font f=new Font("华文新魏", Font.BOLD, 30);g.setFont(f);g.drawString("stage", 150, 150);}}@Overridepublic void run() {while(true){try {Thread.sleep(300);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}times++;// TODO Auto-generated method stubthis.repaint();}}}//我的面板class MyPanel extends JPanel implements KeyListener,Runnable {//定义一个我的坦克Hero hero=null;//定义3张图片。
韩顺平java图形界面编程
①JFrame是Frame 的子类。 ②属于容器类组件,顶层容器。 ③JFrame 有一些常用的方法,我演示几个最最常用的方法,通过 java的帮助文档我们可以了解。
主讲 韩顺平
swing 组件 按钮组件
按钮组件-为什么有? 在图形用户界面编程中,我们在窗体中会经常使用到按钮,如下图所 示:
■
我们在进行选择的时候,常常需要确认,所以按钮很重要。
主讲 韩顺平
三大布局管理器 ---介绍
布局管理器 –介绍 ①概念 组件在容器(比如JFrame)中的位置和大小是由布局 管理器来决定的。所有的容器都会使用一个布局管 理器,通过它来自动进行组件的布局管理。 ②种类 java共提供了五种布局管理器:流式布局管理器 (FlowLayout)、边界布局管理器(BorderLayout)、 网格布局管理器(GridLayout)、卡片布局管理器(CardLayout)、 网格包布局管理器(GridBagLayout)。其中前三种是最常见的布局 管理器。
主讲 韩顺平
图形用户界面(gui)
用什么开发gui 说起gui开发,这里还有一个小故事,想当年我学习gui的时候,被 awt,swing,swt,Jface这几个东东搞得是晕头转向.都不知道老师在 讲什么,现在兄弟我明白了,给大家讲讲是怎么回事.
■
Sun已经提供了一个跨 平台GUI开发工具包AWT 抽象窗口工具箱 (Abstract Window Toolkit). IBM认为swing比较消耗内 存,创建了一个新的GUI库, 这就是SWT
■
①JButton是AbstractButton 的子类。 ②属于容器类组件,可以加入别的组件. ③Swing包的按钮组件不只有JButton ,还有 单选按钮 (JRadioButton)、箭头按钮(BasicArrowButton)、触发器按钮 (JToggleButton).. 这些按钮我们在后面会讲解。
韩顺平java笔记(完整版)
java平台1、J2SE java开发平台标准版2、J2EE java开发平台企业版java程序需要在虚拟机上才可以运行,换言之只要有虚拟机的系统都可以运行java程序。
不同系统上要安装对应的虚拟机才可以运行java程序开发步骤1、编写源文件 (.java)2、编译源文件为类文件(.class)可用J2SE或J2EE编译3、在虚拟机上运行注释//单行注释/* */多行注释java内容介绍java编程可以分成三个方向:1、java se (j2se)桌面开发 java中的基础中的基础2、java ee (j2ee)web开发3、java me (j2me)手机开发java se课程介绍java面向对象编程(基础)java图开界面开发java数据库编程java文件io流编程java网络编程java多线程编程java ee基础1java面向对象编程--数据库编程-->java sejava 基础2html--css--javascript-->div+cssjava ee中级部分Servlet--Jsp-->mvc模式java ee高级部分Struts--Ejb--Hibernate--Spring--Ajax(ext,dw2)-->ssh框架java之父gosling1990 sun启动绿色计划1 | 4421992 创建oak语言-->java1994 gosling参加硅谷大会演示java功能,震惊世界1995 sun正式发布java第一个版本,目前最新是jdk7.0java开发工具记事本、(jcreator、jbuilder退出舞台了)、netbean、eclipse如何选择开发工具先选择记事本,对java有一定了解后再使用eclipse高级开发工具为什么呢?1、更深刻的理解java技术,培养代码感2、有利于公司面试java语言的特点1、java语言是简单的2、java语言是面向对象的3、java语言是跨平台(操作系统)的[即一次编译,到处运行]4、java是高性能的java第一个程序hello.java运行java程序要安装和配置jdkjdk是什么?1、jdk全称java dvevlopment kit中文java开发工具包2、jdk是sun公司开发的3、jdk包括jre(java runtime envirnment)java运行环境、一堆java工具和java基础的类库(类共3600左右,常用类在150个左右)4、可以在下载**开发安装jdk,用户执行需要安装jre配置JDK添加环境变量即可windows下配置jdk在计算机属性--高级设置--环境变量--添加PATH将JDK所在路径指定即可。
韩顺平Java17——单例模式
韩顺平Java17——单例模式单例模式饿汉式步骤:1.构造器私有化(为了防⽌直接new)2.在类的内部创建⼀个static的私有化对象3.提供⼀个公共的static⽅法来返回刚才的对象单例模式的对象⼀般都是重量级的对象,饿汉模式的对象在类加载的时候就已经被创建好,但可能⽤不到,所以可能会造成资源的浪费。
public class Single01 {/*单例模式——饿汉式*/public static void main(String[] args) {GirlFriend instance = GirlFriend.getInstance();System.out.println(instance);}}class GirlFriend{private String name;private GirlFriend(String name) {// 私有化构造器 = name;}// 创建对象private static GirlFriend gf = new GirlFriend("⽉⽉");public static GirlFriend getInstance(){// 公共⽅法返回对象return gf;}@Overridepublic String toString() {return "GirlFriend's name=" + name;}}懒汉式public class Single02 {//单例模式——懒汉式public static void main(String[] args) {Cat instance = Cat.getInstance();System.out.println(instance);}}class Cat{private String name;private Cat(String name) { = name;}private static Cat cat;public static Cat getInstance(){ // 判断没有被创建再创建if (cat==null){cat=new Cat("⼩花");}return cat;}@Overridepublic String toString() {return "Cat{" +"name='" + name + '\'' + '}';}}。
韩顺平java作业
韩顺平java作业1、做一个加法器,计算他们的和;2、做一个减法器,计算他们的差;3、做一个乘法器,计算他们的积;4、做一个除法器,计算他们的商(和余数)目的:变量定义、初始化、赋值;运算符和表达式;输出语句。
5、打印5行8列星号6、打印半金字塔(先打印空格,在打印星号)7、打印金字塔8、已知掌上游戏机一台320元,mp3一台260元,公司举行抽奖,公司有18人,一等奖游戏机,二等奖mp3,购入5台游戏机,13台mp3。
问总价是多少,公司实际平均给每人花费了多少钱(4980 276.6666)9、掌上游戏机一台X元,mp3一台Y元(X,Y由用户输入),公司举行抽奖,公司有30人,一等奖游戏机5台,二等奖mp313台。
问总价是多少,公司实际平均给每人花费了多少钱。
10、10、已知掌上游戏机一台320元,mp3一台260元,公司举行抽奖,公司有30人,一等奖游戏机X台,二等奖mp3Y台(X,Y由用户输入)。
问总价是多少,公司实际平均给每人花费了多少钱。
11、输出九九乘法表,要求行列对齐12、请使用三个整形变量完成如下功能:用户输入两个整数值;计算两数的和,输出此和;求出两数的平均值,输出平均值(整数即可);求出平均数>第二个数的关系表达式的值,输出此值;用第一个数减去上边关系表达式的值,得到他们的差,输出差;存储第二个数的变量累乘上式的结果,输出次变量的当期值;存储第一个数的变量累加第二个变量,输出第一个变量的当前值。
测试:输入3 5 得到的分别是:8 4 0 3 15 1813、渔夫出海打渔,收货若干(36):渔夫卖掉一半的鱼,然后送给隔壁的海伦3条;渔夫又卖掉了剩下的鱼的三分之二,自己又吃了一条;海伦来看渔夫,渔夫家里还剩四条。
问他那天打了多少鱼?14、有一个猴子摘了一堆桃子,当即吃了一半,可是桃子太好吃了,她又多吃了一个,第二天他把第一天剩下的桃子吃了一半加一个,就这样到第十天早上她只剩下一个桃子,问他一共摘了多少个桃子(1534)15、计算1+2+3+。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、做一个加法器,计算他们的和;
2、做一个减法器,计算他们的差;
3、做一个乘法器,计算他们的积;
4、做一个除法器,计算他们的商(和余数)
目的:变量定义、初始化、赋值;运算符和表达式;输出语句。
5、打印5行8列星号
6、打印半金字塔(先打印空格,在打印星号)
7、打印金字塔
8、已知掌上游戏机一台320元,mp3一台260元,公司举行抽奖,公司有18人,一等奖
游戏机,二等奖mp3,购入5台游戏机,13台mp3。
问总价是多少,公司实际平均给每人花费了多少钱(4980 276.6666)
9、掌上游戏机一台X元,mp3一台Y元(X,Y由用户输入),公司举行抽奖,公司有30人,
一等奖游戏机5台,二等奖mp3 13台。
问总价是多少,公司实际平均给每人花费了多少钱。
10、10、已知掌上游戏机一台320元,mp3一台260元,公司举行抽奖,公司有30人,
一等奖游戏机X台,二等奖mp3 Y台(X,Y由用户输入)。
问总价是多少,公司实际平均给每人花费了多少钱。
11、输出九九乘法表,要求行列对齐
12、请使用三个整形变量完成如下功能:
用户输入两个整数值;
计算两数的和,输出此和;
求出两数的平均值,输出平均值(整数即可);
求出平均数>第二个数的关系表达式的值,输出此值;
用第一个数减去上边关系表达式的值,得到他们的差,输出差;
存储第二个数的变量累乘上式的结果,输出次变量的当期值;
存储第一个数的变量累加第二个变量,输出第一个变量的当前值。
测试:输入3 5 得到的分别是:8 4 0 3 15 18
13、渔夫出海打渔,收货若干(36):
渔夫卖掉一半的鱼,然后送给隔壁的海伦3条;
渔夫又卖掉了剩下的鱼的三分之二,自己又吃了一条;
海伦来看渔夫,渔夫家里还剩四条。
问他那天打了多少鱼?
14、有一个猴子摘了一堆桃子,当即吃了一半,可是桃子太好吃了,她又多吃了一个,
第二天他把第一天剩下的桃子吃了一半加一个,就这样到第十天早上她只剩下一个桃子,问他一共摘了多少个桃子(1534)
15、计算1+2+3+。
+20=?思考如果让用户输入一个整数N,计算累加和:1+2+3+```+n=?
16、丢手帕问题
17、一元多项式的求和
(1)一元多项式的表示问题,对于任意一个一元多项式:
F(x)=a0+a1*X+…+an*xn
可以抽象为一个由系数,指数对构成的线性表,且线性表中各元素的指数项是递增
的:A={ (a0,0),( a1,1),( a2,2),….( an,n)}
(2)用一个单链表表示上述线性表,节点结构为:
Typedef struct node
{
Float coef; /系数域/
Int exp; /指数域/
Struct node *next; /指针域/
}PloyNode
18、请编写一个cat类,要求:该猫可以做四则运算;可以进行面积计算;
然后
将四则运算器和面积运算器合二为一,做一个运算器,主菜单让用户选择是做四则运算还是面积运算,分为两个子菜单,让用户选择加减乘数或者形状。