您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页java

java

来源:筏尚旅游网


期末复习

一、教材相关章节

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

本站由北京市万商天勤律师事务所王兴未律师提供法律服务