1、考试题型一、选择题(20分,每题2分) 10题二、简答题(15分,每题5分) 3题三、 程序填空(共45分,每空3分) 3大题四、编程题(20分)1大题各章复习要点第2章 Java基本语法1、标识符标识符的作用是用于标识程序中的各个元素。由字母、下划线(_)、美元符($)、数字(09)组成,数字不能开头。2、关键字 P20(浏览一下,留意学过的关键字)3、数据类型基本数据类型P20 图2-1 、P21 表2-1 各类型需要掌握的要点:类型名称、关键字,占用位数、取值围(整数类型的取值围取决于占用位数,如:占用位数为n,则表示的围是:-2n2n-1)4、运算符与表达式自增、自减符号在变量的前后位
2、置不同,表达式的结果是不一样的。例如 int a=1,b=2; System.out.print(a+-b); 结果为false+在a变量后面,那表达式a+的值是取a的值作为表达式的值,值为1。-在b变量之前,那表达式-b的值是多少? 先让b自减1,而后在取b的值作为表达式的值,即为1。最后a自增1。条件运算符 ?: 例如: int x=-1,y; y=x=0?x:-x; y的值是? y值为15、利用Scanner类输入(1) 导入util包。例如:import java.util.*;(2) 创建Scanner类对象引用 。例如:Scanner s=new Scanner(System.in
3、);(3) 获得键盘输入的数据,可以调用nextXXX()方法。获得整型数据,使用nextInt();获得双精度浮点数据,使用nextDouble();获得一字符串,使用nextLine()。例如 int a=s.nextInt(); P29 例2-36、程序流程控制顺序结构、选择结构(if(); if()else; switch() case n:; default:;)、循环结构(while(); dowhile(); for(;)P49 例2-20、P60 例2-297、数组 一维数组的声明与创建声明: 类型 数组名 ; 或 类型 数组名;创建: 数组名=new 类型数组长度;也可以声明
4、与创建合并:类型 数组名 =new 类型数组长度; 注意等号左边的中括号中不要写出数组长度也可以声明数组的同时进行初始化赋值,例如:int a=1,2,3,4,5; 注意大括号仅在数组声明后给值的情况。 int a; a=1,2,3,4,5;这种用法是不对的。8、方法的重载在一个类中可以定义多个同名的方法,但要求各方法具有不同的参数类型或参数个数。方法重载通常用于创建完成一组任务相似但参数不同的方法。第3章 类与对象1、类的定义类的修饰符 class 类名 extends 父类名 /中括号表示可以省略实例变量的定义类(static)变量的定义 成员变量的定义方法中的变量称为方法变量实例变量的定
5、义实例方法的定义类(static)方法的定义成员方法的定义2、构造方法构造方法是类中一种特殊的方法,主要用于初始化类对象实体。类的构造方法的名字必须与它所在类的名字完全相同,而且没有类型。允许一个类中编写若干个构造方法,但必须保证它们的参数不同,参数不同是指:参数的个数不同,或参数个数相同,但参数列表中对应的某个参数的类型不同。3、类对象的创建(1) 分2步:先声明,后创建。类名 引用变量名; 引用变量名=new 构造方法(实际参数);构造方法中的实际参数取决于构造方法定义给定的形式参数(2) 1步: 类名引用变量名=new 构造方法(实际参数);4、综合(实验报告二(4)学生类的创建和使用创
6、建一个学Student类,成员变量包括:学号、性别、年龄等,且都是private类型。声明一个构造方法,初始化所有成员变量。分别声明获得各属性的public成员方法,方法名要求以get开头。分别声明修改各属性的public成员方法,方法名要求以set开头。声明一个public类型的toString()方法,把该类中的所有域信息组合成一个字符串。声明统计创建Student对象的个数的私有域count和得到Student对象的个数的public方法。主方法测试类功能(2种,任取一种)编写测试类Test,在主类中,创建2个Student对象,输出对象的所有域信息;修改对象的和年龄,输出修改后的和年龄
7、;比较两个Student对象的年龄的大小,输出年龄较大的Student对象。在Student类中编写主方法,创建2个Student对象,输出对象的所有域信息;修改对象的和年龄,输出修改后的和年龄;比较两个Student对象的年龄的大小,输出年龄较大的Student对象。package Student;publicclass Student private String id;private String name;privateintage;private String gender;privatestaticintcount=0; public Student(String id, Stri
8、ng name,String gender,int age)this.id=id;this.name=name;this.age=age;this.gender=gender;count+; publicstaticint getCount()returncount; public String getId()returnid; public String getName()returnname; public String getGender()returngender; publicint getAge()returnage; publicvoid setId(String a)id=a;
9、 publicvoid setName(String c)name=c; publicvoid setGender(String d)gender=d; publicvoid setAge(int e)age=e; public String toString()return学号: +this.id +t: +this.name +t性别:+this.gender +t年龄:+this.age; publicstaticvoid main(Stringargs) Student s1=new Student(0001,三,男,16); Student s2=new Student(0002,四
10、,女,18); System.out.println(s1.toString(); System.out.println(s2.toString(); System.out.println(创建的学生总数为:+Student.getCount(); s1.setName(王五); s1.setAge(17); s2.setName(陆陆); s2.setAge(19); System.out.println(s1.toString(); System.out.println(s2.toString();if(s1.getAge()s2.getAge() System.out.println(年
11、龄较大的人的信息:+s1.toString();else System.out.println(年龄较大的人的信息: +s2.toString();publicclass Test publicstaticvoid main(Stringargs) Student s1=new Student(0001,三,男,16); Student s2=new Student(0002,四,女,18); System.out.println(s1.toString(); System.out.println(s2.toString(); System.out.println(创建的学生总数为:+Stud
12、ent.getCount(); s1.setName(王五); s1.setAge(17); s2.setName(陆陆); s2.setAge(19); System.out.println(s1.toString(); System.out.println(s2.toString();if(s1.getAge()s2.getAge() System.out.println(年龄较大的人的信息:+s1.toString();else System.out.println(年龄较大的人的信息: +s2.toString();第4章 继 承Java不支持类的多重继承,继承关键字 extends
13、,参见第三章类的定义。第5章抽象、接口1、抽象类abstract class 抽象类名称 成员变量声明;abstract 方法(); / 仅有方法头,没有方法体非抽象方法() / 有方法头,有方法体 注意:不可用抽象类构造方法创建对象。2、接口访问修饰符 interface 接口名 extends 父接口名列表 接口成员定义接口成员有3种:a. 常量(接口中的成员量都是常量,可以省略public、 static 、final 关键字) b. 接口中的方法都是抽象方法(接口中一般省略了public、abstract关键字) c. 嵌套类和嵌套接口类通过实现(implements)接口来发挥接口的
14、功能,如果该类是非抽象类,那就必须重写接口中的所有方法。接口和抽象类有些相似,区别在于(1)接口可以多继承,而类只允许单继承;(2)抽象类可以有部分实现,可以有静态方法等;而接口不允许有任何实现。第6章异常在程序执行期间,可能会有许多意外的事件发生。Java把这些意外的事件成为“异常”。对发生的异常,进行处理,将使程序更加清晰、健壮、容错能力强。异常处理的方式:(1)try-catch-finally 语句 (2) 使用throw语句直接抛出异常或使用throws语句间接抛出异常。第7章文件管理与输入/输出Java支持两种类型的流:字节流和字符流。字节流由抽象类InputStream 和Out
15、putStream的子类实现。字符流由抽象类Reader和Writer的子类实现。第8章线 程1、线程的概念线程是比进程更小的执行单位,一个进程在其执行过程中,可以产生多个线程,形成多条执行线索,每条线索,即每个线程也有它自身的产生、存在和消亡的过程。2、线程的生命周期(1) 新建a. 一个用Thread类或其子类的对象被声明并创建 b一个用实现了Runnable接口的类创建的(2) 运行 线程调用start()方法。JVM会知道又有一个新线程排队等候切换了,当JVM将CPU使用权切换给线程时,该类中的run()方法就立刻执行,run()方法规定了该线程的具体使命。(3)中断有4种中断原因:a
16、. JVM将CPU资源从当前线程切换给其他线程,使本线程让出CPU的使用权。b. 线程使用CPU资源期间,执行了sleep(int millsecond)方法,使当前线程进入休眠状态。经过参数指定的毫秒数后,该线程重新进到线程队列排队等待CPU资源,该方法可能会引起InterruptedException异常。c 线程使用CPU资源期间,执行了wait()方法,使得当前线程进入等待状态。等待状态线程不会主动进到线程队列中排队等待CPU资源,必须由其他线程调用notify()或notifyall()方法通知它,使得它重新排队等待CPU资源。d. 线程使用CPU资源期间,执行某个操作进入阻塞状态,
17、比如执行读/写操作引起阻塞。只有当引起阻塞的原因消除时,线程才重新进到线程队列中排队等待CPU资源。(4)死亡死亡原因有二种:a. 执行完run()方法中的全部语句;b. 被提前强制性终止run()方法。所谓死亡状态就是线程释放了实体,即释放分配给线程对象的存。P162 方式一:继承Thread类P163 方式二:实现Runnable接口第9章图形用户界面设计1、组件和容器组件是图形用户界面的基本部分,比如一个按钮,一个标签等容器用于包含组件和容器,可以通过add(组件或容器)方法添加括号中的参数到当前容器。2、布局管理常用布局a. FlowLayout 该布局的特点:将各个组件按add方法顺
18、序地添加到容器,组件按照从左向右,第一行排满后排第二行,每行中组件都居中排列。是JPanel型容器的默认布局。b. BorderLayout 如果一个容器使用这种布局,那么容器空间简单的划分为东、西、南、北、中五个区域,中间的区域最大。每加入一个组件都应该指明这个组件加在哪个区域中,区域由BorderLayout的静态常量CENTER、NORTH、SOUTH、WEST、EAST表示c. CardLayout 使用CardLayout的容器可以容纳多个组件,这些组件被层叠放入容器中,最先加入容器的是第一(最上面),依次向下排序。使用该布局的特点是,同一时刻容器只能从这个组件中选出一个来显示,这个
19、被显示的组件将占据所有的容器空间。d. GridLayout 其基本布局策略是把容器划分成若干行乘若干列的网格区域,组件就由add()方法添加顺序依次从第一行第一列、第一行第二列被填充到这些划分出来的小格中。3、事件处理模型 编写代码时注意以下三点: (1)确定事件源 (2)事件源.addXXXListener(实现事件监听接口类对象引用) (3)事件监听接口相应的事件处理方法重写4、创建窗口有2种方法 a. 在主类中创建JFrame类对象引用,再创建各组件并添加到窗口。 b. 创建JFrame类的子类例如:窗口中有三个组件,依次是:标签(JLabel)、文本框(JTextField)、按钮(
20、utton)。现在在文本框中输入字符,单击“确定”按钮后,标签就显示为文本框中的容。如图1所示,点击“确定”按钮后,如图2所示图1 初始状态图2 点击按钮后方法一:在主类中创建JFrame类对象引用,再创建各组件并添加到窗口import javax.swing.*; /JFrameJLabelJTextFieldutton 类所在包import java.awt.*; / 常用布局类所在包import java.awt.event.*; /事件处理publicclass TestJFrame privatestatic JFrame myframe=new JFrame(); /创建窗口类对象
21、,作为该类成员变量,注意是staticprivatestatic JLabel mylabel=new JLabel(abcdefg); /创建标签类对象,作为该类成员变量,注意是staticprivatestatic JTextField mytxt=new JTextField(18); /创建文本框类对象,作为该类成员变量,注意是staticprivatestatic utton mybtn=new utton(确定); /创建按钮类对象,作为该类成员变量,注意是staticpublicstaticvoid main(String args) myframe.setTitle(Examp
22、le); /为窗口设置标题myframe.setLayout(new FlowLayout(); /为窗口设置布局,这里采用的是流式布局myframe.add(mylabel); / 为窗口添加标签组件myframe.add(mytxt); / 为窗口添加文本框组件myframe.add(mybtn); / 为窗口添加按钮组件mybtn.addActionListener(new ActionListener() / 按钮组件作为事件源,添加动作事件监听器,并用匿名部类作为事件监听器对象publicvoid actionPerformed(ActionEvent e) / 动作事件处理方法my
23、label.setText(mytxt.getText(););myframe.setSize(500,200); /为窗口设置大小 myframe.setVisible(true); /窗口设置为可见myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);方法二:创建JFrame类的子类import javax.swing.*; /JFrameJLabelJTextFieldutton 类所在包import java.awt.*; / 常用布局类所在包import java.awt.event.*; /事件处理classMyFrameex
24、tends JFrame implements ActionListener /继承了JFrame类,同时实现了ActionListener接口JLabel l;JTextField tf;utton btn;MyFrame()super(Example); /调用父类构造方法,传递参数,实现设置标题l=new JLabel(abcdefgh);tf=new JTextField(18);btn=new utton(确定);add(l); add(tf); add(btn);btn.addActionListener(this); /由于本类实现了ActionListener接口,所以本类对象
25、可以作为监听器对象setLayout(new FlowLayout();setVisible(true);setBounds(50,50,500,200);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);publicvoid actionPerformed(ActionEvent e) /重写ActionListener接口中actionPerformed方法,实现事件处理l.setText(tf.getText();publicclass TestJFrame2 /测试类publicstaticvoid main(String args) new MyFrame();11 / 11