期末复习
一、教材相关章节
1.“Java的定义”:Java是一种计算机语言,可以编写嵌入在Web网页中运行的Java Applet 小程序,也可以编写运行的Java Application 应用程序, 它是当前流行的一种面向对象的、于平台的编程语言。
2. “解释型”
“Java是解释执行的。程序运行时,字节码通过Java虚拟机被直接 翻译成本地机器指令。”
3.p5:“2.运行的Application”标题下:
“Java语言就是一门高级编程语言,和其它高级语言并无两样。” 说明:
·Java语言是面向对象解释型高级语言。
4. p15:图下文字:
“文件名取为Hello.java。。。。文件名都要注意区分大小写。”
5.p15:-5后两行: “语法检查通过后。。。扩展名为.class”
6.p28:“3.浮点型常量”标题下:两行 “一个浮点数,。。。。被默认为双精度浮点数。” 说明:
·单精度浮点数位长为32位,双精度浮点为位。
·单精度浮点数位使用关键字float声明,双精度浮点数位使用关键字double声明
7.p31:表下第3行起共7行
“下面的语句将字符型数据强制转换为整型数据。。。进行强制类型转换。” 说明:
·强制转换不适用于布尔型与非布尔型的转换。 ·字节小的向大字节转换不需要加强制转换符,(也可添加强制符),例外:字节型(8位)向字符型(16位)转换要加强制符(char)。
·双精度数强制转换成单精度之后,数值精度下降。
8. p33:“2.3.4逻辑运算符”标题下
“逻辑表达式通常由多个关系表达式构成,最终运算结果为布尔值true或fase” 说明:
·注意关键字的大小写,如果与上关键字大小写不一样,可定义为标识符。
9.p34:“2.3.5条件运算符”标题下中间部分4行: “条件表达式用于单个条件的判断。。。为假时为0” 练习:i,j,m,n为整型量,i,j已赋值:
-1-
if (i>j){ m=i; n=j; } else{ m=j; n=i; }
用三目条件运算符,对m,n变量,用赋值语句改写上式。
10.p37:-5至本页完 “声明数组后,。。。。到数组长度减1” 说明:
·数组的元素从0开始。 ·数组length属性定义了数组的长度,求数组a的长度使用a.length(不是a.length())。 ·数组定义分为三步:声明数组、创建数组、为数组赋值。
11. p42:“2.主类”标题下:9行:
“Java程序中,必须含有下个可被外界(通常是。。。程类体由成员变量和成员方法两部分构成。” (中间“如例3.1中的GetSquare就是主类”不要)
说明:
·有人称类声明为“类头”。
13. p46:-14起共4行:
“使用开关语句时,注意以下两点:。。。。这种情况叫做落空。” 说明:
·switch 圆括号中只能是整型量或字符量
·switch 圆括号中可以是是整型量或字符量的表达式 ·switch 圆括号不可少。
14. p47:-4至-3
“Java的3种循环语句:。。。。(do ..while)的使用方法。”
15. p51:“3.4.1break语句”标题下2行:
“break语句提供了一种文便的跳出循环的方法。。。跳出循环体。”
16. p:5行起共6行 “当方法用void声明时。。。。可使用强制类型转换使类型一致。” 说明:
·一定要保证返回的数据类型与方法声明的数据类型一致。
·return 后可以是值(或类型强制转换的值(例:char ch='a';return (int)ch;)。 ·return 后也可以是一表达式(例:a,b已赋值的整型量,ruturn a+b;) 。 ·在方法声明中的参数列表中,要对每一变量都要有数据类型说明。
-2-
17. p58:4.1.3封装标题下两行:
“封装就是将相关的数据和方法放在一外包里。。。也不能对数据进行操作。”
18. p62:“4.2.1创建类”标题下:7行: “类通过关键字class创建。。。。其中,[]表示可选项,〈〉表示必选项。” 说明:
·声明一个类,在类名前面要用关键字class 。 ·子类继承父类时要用关键字extends。 ·public 类最常用的访问修饰符。
·所列的修饰符不是一定都要,带[ ]是可选择项。 ·类前不能用static或Float等修饰符修饰。
·类声明前4个关键字,属访问修饰符(或访问控制符)
19. p63:第1行:
“在声明类的语句中,class前面的关键字称为类的修饰符。”
20.p63:“4。Final(最终类)”标题下一行: “带有final修饰符的类。。。。也就是说它不能继承。”
21. p63:“3.abstract(抽象的)”标题下:2行: “带有abstract修饰符的类。。。。不能用来创建实例对象。” 说明:
·final、abstract关键字能修饰类和方法。
·final能修饰成员变量,但abstract不能修饰成员变量。
·当一个类被声明为final(最终类)时,它不可能有子类,更不会有子类对父类的方法覆盖。
22. p67:1行至6行
“new 称为操作符或运算符。。。参数列表是可选的。” 说明:
·创建类对象时,使用运算符new。 ·创建对象时,前面不能再加关键字修饰(例:“public 类名 对象名=new 类构造方法”,不能加public )
23. p68: “4)构造方法的特点”标题下6行: “构造方法的名称和类同名。。。。只能放在方法中。”
24. p71:8至12
“使用访问控制修饰符可以访问成员变量的权限。。。<成员变量名称>”
25. p72:文字开始第3行共2行: “由private修饰的变量,只能。。拒绝任何外部类的访问。” 说明:
·拒绝任何外部类的访问,也不允许其子类访问。
-3-
26. p72:-8起两行
“static声明的成员变量被视为类的成员变量。。。。可以直接引用。” 说明:
·静态变量可以用private修饰。
27. p74:“3.final最终类变量”标题下两行: “一旦成员变量被声明为final。。。就是一个常量。” 说明:
·变量声明要与取值的数据类型要一致。(例:final int i=1.2; 定义错) ·用final修饰的最终变量应是一个常量。
·final修饰的最终变量在开始定义时,就要给出一个常数值。 ·final修饰的最终变量前可加static修饰(但应放成员变量区中)。
28. p75:“4.4.2成员方法的声明与修饰”标题下 “成员方法的声明一般放在成员变量声明之后。。。也可以通过类名来调用。”
29. p76:1行至3行: “1.final 最终方法。。。不能在子类中修改或重定义它。”
30.P76:“2.abstract抽象方法”标题下:2行: “一个抽象类可以含有抽象方法。。。所以抽象方法不能出现在非抽象类中。” 说明:
·成员变量定义的变量,又称为属性或域。 ·final可修饰类、变量(属性)、方法。 ·用final的变量不能修改。
·abstract可修饰类、方法,但不能修饰变量(属性)。 ·abstract方法不含方法体。
31. p78:2行起,共2行
“Java要求一个方法必须声明它的返回值类型。。。作为返回类型。” 说明:
·一个方法只能返回一个数据类型。
32.p85:“1.父类与子类的关系”标题下两行: “当建立一个新类时,。。。。就可以引用被继承类的全部成员。”
33. p86:第1行起5行: “子类只能有下父类。。。也可以隐藏父类的成员变量或覆盖父类的成员方法。” 说明:
·子类的对象能直接向其父类对象赋值。
34. p88:第2行起2行:
-4-
“成员变量的隐藏是指子类重新定义了父类的同名的变量。。。成员变量x和y。” 说明:
·子类的变量与父类变量同名,称之为成员变量的隐藏。
35. p:3行起共2行:
“用来覆盖的子类方法应和被覆盖的父类方法同名。。。。参数类型。” 说明:
·覆盖要求子类方法与父类方法在三个方面保持一致:方法名、返回数据类型、参数列表。
36. p90:(1)this可以代表当前类或对象。。。在使用类的成员时隐含着 this引用。”
38. p91:例5.3程序上3行: “类的构造方法是不能被继承的,因为构造方法不是类的成员,。。。。需要使用super()。” 说明:
·类的构造方法不能继承,但可以覆盖。
39. p92:5行起共2行
“当程序要实现多个相近的功能时。。。用不同的参数代表不同的功能” 说明:
·同类中,相同的方法名,不同的参数表(指参数个数、顺序、数据类型其中之一不同)的方法称之为方法重载。
·在同类中,若方法同名、参数类型、参数个数、顺序相同,返回类型有无(或返回类型不一样)不能称之为方法重载。
·覆盖要求方法同名、参数类型、参数个数相同,参数顺序相同,并且要求返回类型也要相同。
·覆盖是在不同类(子类和父类)之间发生的,重载是在同一类发生的。
40. p93:-8:共两行:
“每一个类都有一个默认的构造方法。。。。创建子类时由父类自动提供。” 说明:
·子类不能继承父类的构造方法。
·每一个类有一个默认的无参构造方法。 ·构造方法也可以称之为构造函数。
·构造方法不能用一般方法“对象.方法”调用,只能是用new 关键字调用,为新对象初始化。
·构造方法可有参数,也可无参数,也可带多个参数。
41.p95:“2。实现接口的方法”标题下4行: “在的类声明语句中使用关键字inpliments。。。不叫继承而称之为实现。”
42. p96:-5,4行 “如同创建类一样,,,,同时声明一些方法。”
-5-
43. p97:“说明。。。(4)”下:
“接口中的方法都默认为abstract, 不管有没有这些修饰符。”
44. p101:1至3行 “6.java.applet包。。。所有应用程序都是从该类派生的。” 说明:
·在引入包时可引用:import java.applet.*;或import java.applet.Applet.*包
二、例题
1.求bool,a,b值: int a=3,b=5; boolean bool;
bool=a>b && (a+=5)==(b+=3);
答:false , 3, 5 (上式最终表达式是求布尔值,因第1个表达式(a>b)是假,下面的式子(仅管带括号优先级高)系统不再做,所以a和b保持原值。)
2.求下循环体循环次数:
int a=3,b=15; do {
b-=a; a++;
}while(++a>--b) 答:2次
3. int a=4,b=5;
//求下式的布尔值: !(++a!=--b); 答:false
4. int a=4,b=8; //求下式的值:
(a++)+(++b)+b-a;//注意:a++与++b的不同。 答:17
5.整型量m能被5整除的表态式是 答: m%5==0
6.表达式2/5*5计算结果是 答: 0
7.有一方法ii,求两参数的整数部分 int ii(float a,float b){ //添加语句: }
-6-
答:return(int)a*b
8.在小应用程序中,窗口左上角(0,0)象素点代表坐标原点,向右正向增长为x坐标,向下正向增长为y坐标。
三、程序示例: 关键字:
extends、implements、ActionListener、Button、setLayout、FlowLayout、addActionListener、actionPerformed、setBackground(Color.red)、setBackground(Color.green)、setBackground(Color.blue)、setBackground(Color.white)、addWindowListener、WindowAdapter、windowClosing、WindowEvent、Math.random()、
1.按钮选择:
import java.awt.*;
import java.awt.event.*;
public class Test1 extends Frame implements ActionListener{ Label label1=new Label(\"请选择按钮:\"); Label label2=new Label(\"按钮信息显示\"); Button button1=new Button(\"按钮1\"); Button button2=new Button(\"按钮2\"); Button exit=new Button(\"退出\"); public Test1(){
setLayout(new FlowLayout()); add(label1); add(label2); add(button1); add(button2); add(exit);
button1.addActionListener(this); button2.addActionListener(this); exit.addActionListener(this);
//使窗口关闭按钮可用:
this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ System.exit(0); } });
setSize(230,200); setVisible(true); }
public void actionPerformed(ActionEvent e){ if(e.getSource()==button1)
-7-
label2.setText(\"你按下了按钮1\"); else if (e.getSource()==button2)
label2.setText(\"你按下了按钮2\"); else if (e.getSource()==exit) System.exit(0); }
public static void main(String args[]){ new Test1(); } }
2.背景颜色选择:(请参考p1:例8.8) import java.awt.*;
import java.awt.event.*; import javax.swing.*;
public class Test2 extends Frame implements ItemListener{ JLabel label1=new JLabel(\"请选择背景颜色:\"); JRadioButton red=new JRadioButton(\"红色\"); JRadioButton green=new JRadioButton(\"绿色\"); ButtonGroup bg=new ButtonGroup(); public Test2(){
super(\"背景颜色选择\");
setLayout(new FlowLayout()); bg.add(red); bg.add(green); add(red); add(green);
red.addItemListener(this); green.addItemListener(this); //使窗口关闭按钮可用:
this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ System.exit(0); } });
setSize(300,200); setVisible(true); }
public void itemStateChanged(ItemEvent ie){ if(red.isSelected())
setBackground(Color.red); else if(green.isSelected()) setBackground(Color.green); }
-8-
public static void main(String args[]){ new Test2(); } }
3.随机生成26个小写字母。 public class Test4 { char ch;
public Test4(){
for(int i=0;i<26;i++){ //注意下式的写法:
ch=(char)((int)(Math.random()*26)+'a'); System.out.print(ch+\" \"); } }
public static void main(String args[]){ new Test3(); } }
4.随机生成20个整型数,在Dos屏幕上输出其中一个最小整数。 public class Test3 {
int a[]=new int[20]; private int min; public Test3(){
for(int i=0;i<20;i++){
//1.要加强制转换符(int),2.Math.random()*100要加括号 a[i]=(int)(Math.random()*100); }
getMin();
//因在同一类中,数组a及整型量min均是成员变量,所以不需要传递参数。 System.out.println(\"min=\"+min); }
public void getMin(){ min=a[0];
for(int i=0;i<20;i++)
if(min>a[i]) //如果数组的数小于min min=a[i]; //把该数组元素赋给min }
public static void main(String args[]){ new Test3(); } }
-9-
5.在文本框中输入一字串,按回车键之后,在小应用程序中显示“你输入的字串是: *****”
import java.awt.*; import java.applet.*; import java.awt.event.*;
//要实现监听:1.首先要实现接口implements ActionListener.
public class Test5 extends Applet implements ActionListener{ Label b1=new Label(\"请输入一字串:\"); TextField tf=new TextField(20); String str=\" \"; //要初始化。系统初始化是填进null,在paint()方法中不能调用 public void init(){ add(b1); add(tf);
tf.addActionListener(this);//2.在组件上注册监听 }
public void paint(Graphics g){ g.drawString(str,15,150); }
public void actionPerformed(ActionEvent ae){//3.添加监听方法 //注意:这里无须if (ae.getSource()==***)语句。 //原因:1.文本框已设监听,它能对回车键响应, //2.这里仅只有一个动作。
str=\"你输入了字串: \"+tf.getText();
repaint(); //要有该语句才能显示,重新调用paint()方法。 } }
-10-
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务