jav语言程序设计方案B复习提要(版本)_第1页
jav语言程序设计方案B复习提要(版本)_第2页
jav语言程序设计方案B复习提要(版本)_第3页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java语言程序设计复习提要1、类、对象的概念,类与对象的关系( P8 )。答:类是同一种(具有相同属性和行为)对象的集合与抽象。对象是现实中的具体实体。2、 面向对象的三大特征(P9 )。答:抽象、封装、继承和多态。3、 封装、继承和多态的概念。Java语言实现多态有哪三种方法( P9)?封装是将对象的属性和行为组合成为一个独立的单位或部件,并尽可能隐蔽对象的内部细节,而只保留必要的对外接口,使之与外部发生联系。它是面向对象的重要原则。继承是指一个对象是对另一个对象的扩展,它除了包含被继承对象的已有属性的操作之外,还可以加入新的特性。多态性是指同一个消息可以根据发送对象的不同而产生不同的效果

2、的行为方式。利用多态性可以实现用相同的方法调用作用于不同类型的对象。实现多态的方法:方法重写(方法覆盖)、方法重载、接口4、 JDK 安装目录下,bin 文件夹中的可执行文件 javac.exe , java.exe appletviewer.exe 禾口 javadoc.exe 的作用(P19 )。答:javac.exe: Java语言编译器,它负责将Java源代码(以Java为扩展名)编译为字节码(以class为扩展名)java.exe: Java语言解释器,它负责执行Java字节码文件;appletviewer.exe: Java Applet 小程序查看器。javadoc.exe: J

3、ava语言文档生成器,将源程序文档中的注释取成html格式文件。5、Java程序的分类(P21 )。答:应用程序(Application ),它类似与以往用其它高级语言开发的程序,可以在本机上开发,也可以在本机运行,它的执行入口点中 main()方法。另一类是小型应用程序Applet,它需要通过浏览器下载运行,其中没有main()方法。6、Java的基本类型包含了哪 8种,字符使用什么编码形式(P47-48 )?答:整数型、浮点型、布尔型与字符型四类八种。其中数值型6种分别为整数类型int类型4个字节,short类型2个字节,long类型8个字节,byte类型1个字节。浮点类型中 float类

4、型4个字节,dpuble类型8个字节。字符编码使用 Uno code编码体系,双字节。7、 一个浮点常量没有使用表示类型的后缀字母f或d,则该浮点常量的类型是那种(P50 )?答:整形默认类型为int类型,浮点类型默认类型为double类型。加E表示指数方式,加 F表示单精度float,加D表示双精度double。在E的前面至少要有一位数字。8、字符串的连接运算符是哪个(P51 )?答:使用"+ ”符号实现两个字符串的连接。"How "+"are you"表示"How are you”9、Java语言中的布尔常量只有两个,写出它们的常

5、量表示形式(P51 )。答:true与false。只能是其中的一个。10、对象运算符是:instanceof,它有何用途(P58 )?答:它用于测定一个对象是否属于某个指定类或指定类的子类的实例,它是一个双目运算符,左边的表达式是一个对象,右边的表达式是一个类,如果左边的对象是右边的类创建的对象,则运算结果为true,否则为flase。11、 Java中的常用数学函数定义在那个类中,这些函数都用public和static修饰,可以直接用类名来调用,写出调 用的一般形式(P68 )。答:常用的数学函数在 Math类中。其一般的形式如下:import java.lang.math.*,般可以直接引

6、用类中的方法。Math.sin(Math.PI/4),Math.sqrt(XXXX) ,Math.pow(alnt,blnt)等,参考 API 文档。12、习题:3.1 , 3.3 , 3.7, 3.9 ( P72-73 )/第3章习题1非法变量名称:A=b byte 3ABCabc'-0xab4 -3el k*j/第 3 章习题 3,程序名:X03_03_Switch.javapublic class testpublic static void main(String args) int x=1,a=0,b=0;switch(x) case 0:b+;case 1:a+;case

7、2:a+; b+;System.out.pri ntln ("a="+a+"tb="+b);运行的结果是:a=2b=1注意题目中的控制位置有两处,最终输出的时候重新修改了.第3章习题3.7,计算100 (含100)以内的所有偶数的和、所有奇数的和。程序名:X03_07_OuJiSum.javapublic class X03_07_OuJiSum public static void main(String args) int k,sumOu=O,sumJi=O;for(k=1;k<=100;k+)if(k%2!=0)sumJi+=k;System

8、.out.print("奇数:"+k);elsesumOu+=k;System.out.println("tt 偶数:"+k);System.out.println("100 以内所有奇数的和="+sumJi+"tt 所有偶数的和="+sumOu);/第3章习题9,用while循环语句写程序求 e的值,要求直到最后一项的值小于10-4。程序名:X03_09_CalculateE.javapublic class X03_09_CalculateE public static void main( Stri ng a

9、rgs) int n=1;final double E仁0.0001;double sumE = 1.0,temp=1.0;temp=1/fct( n);while (temp>=E1)sumE += temp;n+;temp=1.0/fct( n);System.out.pri ntln (" n="+(n-1)+",sumE=" + sumE);static long fct(int n) 计算 n!long JieChe ng=1;for (i nt k=1;k<=n; k+)JieChe ng*=k;return JieChe ng;

10、13、Java中数组声明和数组创建的含义相同吗?指岀下面语句的作用(P76):声明数组可以使用int student或int student ;声明数组只是给出了一个数组的名称的数据的类型,要使用数组还要为数组分配内存空间。如下格式:int student; 声明数组student=new student50;为数组分配内存空间14、数组被初始化后,如果想知道这个数组的元素个数,要使用数组的哪个属性(P77 )?答:使用length属性确定。15、Java 二维数组允许各行有不同的元素个数吗(P80 )?答:可以。Java的数组定义方式与其它语言不同。它是按一维建立相应的二维,并以此类推。16

11、、 Java中使用那个类创建字符串常量,使用那个类创建字符串变量(P88 )?答:Stri ng类,声明常量格式 strin gName=字符串常量;如:str=n ew Stri ng( Java程序设计”)或str= "Java程序设计”17、习题:4.4 , 4.6 ( P104 )。/第 4 章习题 2,程序名:X04_04_ArrayCoverse.javapublic class X04_04_ArrayCoverse public static void main(String args) int iArray=9,5,7,4,8,temp,count;coun t=i

12、Arra y.len gth;System.out.println("数组原有数据:");for(i nt k=0;k<co un t;k+)System.out.pri nt(iArrayk+"t");System.out.pri ntl n();for(int k=0;k<count/2;k+)temp=iArrayk;iArrayk=iArrayco un t-k-1;iArraycou nt-k-1=temp;(”逆序重置后的数组数据:”);for(i nt k=0;k<co un t;k+)System.out.pri nt(

13、iArrayk+"t");System.out.pri ntl n();/第 4 章习题 6,程序名:X04_06_CharCount.javaimport javax.swi ng.JOptio nPane;public class X04_06_CharCou nt public static void main(String args) int count = 0, k = 0,spaceV=0,charV=0,nu mberV=0;Stri ng str;char cArr;str = JOptionPane.showInputDialog(” 请输入一个字符串:”

14、);cArr = str.toCharArray();count = cArr.le ngth;for(k=0;k<cou nt;k+)if(' '=cArrk)spaceV+;统计空格个数else if(cArrk>'' && cArrk<'' | cArrk>'” && cArrk<'')charV+;统计字母 AZ和az的个数else if(cArrk>'/' && cArrk<':')numbe

15、rV+;统计数字的个数System.out.println("输入的字符串是:"+str+",t 字符串长度是:"+str.length();(” 字母的个数:"+charV+",t 空格的个数:"+spaceV+",t 数字的个数:"+numberV);18、类声明时,类的访问权限修饰符有哪两种情况?如果在类说明中无extends,则隐含地假设其父类是哪个类(P107 )?答:(1)类定义修饰符说明类的性质和访问权限,包括public、默认修饰符、abstract、final。(2)extends说明类

16、的父类,一般形式为extends<父类名 >,在Java中如果说明extends,则隐含假设其父类为Java .Ian g.object。19、类中所定义的变量和方法都是类的成员。为类的成员定义一定的访问权限,限定其它对象对它的访问。访问权限 有哪4种?分别具有什么样的访问权限(P108)?答:(1)public说明的变量是公有变量,其访问权限是允许任何程序包中的类访问,其作用域最广。(2)private说明的变量是私有变量,其访问权限只能是被定义它的类中的方法访问。(3)protected是保护变量,其访问权限只能中类本身,子类及在同一个包中的所有类的变量访问。(4 )默认修饰符

17、:也称隐含修饰符,它不属于Java的关键字,其作用是控制变量的访问权限,如果一个变量没有显式说明访问权限,则表示使用默认的修饰符,它允许类本身用在同一个包中的类的变量访问。20、 对类的成员来说,可分为实例成员和类成员,如何区分(P108 )?答:用static说明的变量是一个静态变量,也称类变量。无static说明的变量为实例变量。它们之间的区别是:实例变量必须通过类的对象访问,每个对象都有这些变量的备份;而静态变量则独立于该类中的任何对象,它在类中只有一 个备份,可以不通过类的对象直接使用,它一直属于定义它的类。21、 说明修饰符:final、static、abstract 禾口 sync

18、hronized的作用(P109 )?答:(1) final说明该方法为最终方法,指该方法不能被其所在类的子类重载,只能继承,不能重写。(2)static说明该方法为静态方法,也称为类方法,在使用该方法时不需要初始化该方法所在的类。此方法也不能被 其它方法重载。(3)abstract说明该方法是抽象方法,该方法只有说明,没有方法体,方法在所在类的子类中被具体实现。(4)synchronized说明是同步方法,主要用于多线程程序设计,用于保证在同一时刻只有一个线程访问该方法。它是 实现资源之间协商共享的保证方式。22、构造方法有返回值吗?构造方法可以从父类中继承吗? 一个类可以有多个构造方法吗?

19、可以直接通过方法名调用构造方法吗(P110 )?new创建一个类的新对象的时候,构造方法就立刻执行。答:构造方法主要用于为类的方法中的变量赋初值,当使用它必须与类名相同。(1)它没有返回值类型,没有void,其修饰符只能是文章控制修饰符public、private或protected其中之一。(2 )它不能从父类中继承。(3 )可以重载,一个类可以有任意多个构造方法,不同的对象根据参数的不同状态选择合适的构造方法。(4) 它不能通过方法名直接引用,必须通过new运算符。(5 )可以调用当前类和其父类的另一个构造方法,但必须是方法体的第一个语句。23、什么是方法重载?说明例5.5中方法重载情况,

20、分析运行结果(P114 )。答:在Java类中可以创建名字相同,但参数和返回值不同的多个方法,这就是方法重载(overloading )。Java系统通过参数和返回值来区分具体是哪个方法。通过方法重载,一个类中可以有多个名字相同的方法,通过对其传递的不同参数调用特定的方法,这就是多态。24、什么是变量隐藏?什么是方法覆盖?说明例 5.8中变量隐藏和方法覆盖情况,分析运行结果。答:子类继承父类后,如果出现子类的成员变量与父类的成员变量相同,则子类将父类的成员变量隐藏起来,在此情 况下,子类使用的变量是它自己的变量,而不是父类的成员变量。/例5.8,成员变量隐藏和方法覆盖应用举例。程序名 L05_

21、08_SuperUse.javaclass Superclassint兀Superclass()x=3;System.out.println("in Superclass:x="+x);void dosometh in g()System.out.pri ntl n("i n Superclass.dosometh in g()");class Subclass exte nds Superclassint兀Subclass()super();x=5;System.out.println("in Subclass:x="+x);voi

22、d dosometh in g()super.dosometh in g();System.out.pri ntl n("i n Subclass.dosometh in g()");System.out.pri ntln ("super.x="+super.x+"tsub.x="+x);public class L05_08_SuperUsepublic static void main(String args)Subclass Subc =new Subclass();Subc.dosometh in g();25、什么情况下使用

23、 super禾口 this ( P119 )?super。public 的答:子类继承父类之后,如果成员变量与父类相同。则父类的变量被隐藏,如果子类要调用父类的变量则需要使用(1) 用来访问父类中被覆盖的方法;(2 )用来访问父类中的构造方法;(3 )用来访问父类中被隐藏的成员变量。This是Java的关键字,它表示每个实例对象指向自己的引用,一般只能用于在实例方法或构造方法中,不能出现在 类方法中。26、Java中一个类的父类只能有一个吗? 一个接口的父接口也只能有一个吗?答:通过继承方式只能有一个父类,但通过接口方式可以有多个父类。27、在一个Java源程序文件(.java)中可以定义一个

24、类,也可以定义多个类,若定义多个类,其访问权限为类能有几个?编译后的字节码文件(.class)有几个?答:可以定义多个类,对于使用访问权限为public的类没有限制,生成的class文件数量与其相同。28、习题:5.6、5.9、5.15、5.16 (P141)/第 5 章习题 15,程序名:X05_15_Student.java class X05_15_Stude nt private String sname;private int sbirthday;private String sclass;X05_15_Student() X05_15_Student(String name, in

25、t birthday, String class1) sn ame = n ame; sbirthday = birthday; sclass = class1;void setname(String name) sname = name;String getname() return sname;void setbirthday(int birthday) sbirthday = birthday;int getbirthday() return sbirthday;void setclass(String class1) sclass = class1;String getclass()

26、return sclass;void print() System.out.println("sname=" + sname + "sbirthday=" + sbirthday + "sclass=" + sclass);class CollegeStudent extends X05_15_Student void setbirthday(int birthday) if (birthday >= 17 && birthday <= 30) sbirthday = birthday;elseSystem

27、.out.println("Not a collegestudent!");/ 第 5 章习题 16,程序名: X05_16_ AbstractUse.java abstract class Shape abstract double Area();abstract double Perimeter();class Rectangle extends Shape private double length;private double width;Rectangle(double l, double w) length = l; width = w;double Area(

28、) return length * width;double Perimeter() return 2 * (length + width);void Print() System.out.println("Rectangle:length=" + length + "," + "width=" + width + ",Area=" + Area() + "Perimeter=" + Perimeter();class Circle exte nds Shape private double r

29、adius;Circle(double r) radius = r;double Area() return Math.PI * radius * radius; double Perimeter() return 2 * Math.PI * radius; void Prin t() System.out.pri ntln ("Circle:radius=" + radius + ",Area=" + Area()+ "Perimeter=" + Perimeter。);public class X05_16_AbstractUse

30、 public static void main(String args) Circle aCircle = new Circle(4);Recta ngle aRect = new Recta ngle(5, 12);aCircle.Pri nt();aRect.Pri nt();29、什么是异常? 什么是抛出异常? 什么是捕获异常(P144 )?答:异常是指程序在某些运行情况下,会使当前正在执行的方法或代码块无法继续运行的问题,普通的问题在编码时 可以得到足够的信息来处理普通问题。但当异常发生时,由于无法获得足够的信息,因此只能选择跳出当前的运行代码,或者将问题交给上层代码去处理,这就是异

31、常抛出。当Java系统运行时得到一个异常对象时,它会沿着方法的调用栈依次回溯,寻找处理这个异常的代码,找到能够处理这类异常的方法后,运行时系统将当前的对象交给这个方法 处理,这个过程就是捕获异常。30、 ( P145 )根据程序对错误与异常的处理方式,可以将Java中的异常分为哪 3类?答:(1)Error类:指系统级的错误,无法解决。(2) RuntimeException类:可以避免,一般不会影响系统的运行,可以不处理。(3) Exception类:程序运行中必须捕获的异常,使用trycatch方法。31、使用什么语句捕获并处理异常?使用什么语句人为抛出异常?使用什么子句声明方法抛出异常(

32、149-150 )?答:try-catch-finally语句用于捕获并处理异常。32、习题:6.10 ( P157)答:33、习题:7.3 ( P174)答:Applet执行的方法主要为:init()、start()、stop()、destroy。和paint()。它们的执行过程取决于程序设计人员。34、容器(Container) 类包含了 Panel、Window、Frame 禾口 Dialog 等子类,其中,那些类容器不带边框? 那些类容器带边框? Con ta in er类的那个方法可以向容器中添加组件(P177 )?答:Panel子类不带边框,其它类均有边框35、 Java.awt

33、包中为容器定义了哪 5 种布局管理器? Panel 的默认布局管理器是哪个?Window、Frame 禾口 Dialog的默认布局管理器是哪个?使用容器类的那个方法设定布局管理器(P180-181 )?36、 在Java的事件处理过程中,主要涉及哪三类对象(P186 )?答:(1) Event:事件,用户对界面操作在Java语言上的描述,以类的形式出现。(2) Eve nt Source:事件源、事件发生的场所,通常就是各个部件。(3) Event handler :事件处理者,接收并能够处理事件。37、使用委任事件模型进行事件处理,一般通过那些步骤来接受和管理事件(P186 )?答:(1)让

34、类声明所需要的监听器。针对XXXEvent使用XXXListener(2) 为组件(事件源)登记接口。针对组件进行授权,使用addXXXListener方法来注册监听器(3) 在类中实现接口中声明的事件处理方法。38、分析例 8.6 程序。(P210)实验:2. (3) ( P189 )/例8.6 事件处理模型的应用举例。程序名 L08_06_ActionHandleDemo.javaimport java.awt.*;/ 引用 awt 类包import java.awt.event.*;/ 引用事件包public class L08_06_Act ionHan dleDemo exte nd

35、s Frame impleme nts Action Liste nerstatic L08_06_Actio nHan dleDemo frm=new L08_06_Actio nHan dleDemo();static Button btn=new Button(” 请单击!");/ 新建对象同时设置 titlepublic static void main(String args)/main方法开始btn.addActionListener(frm);/ 为按钮增加监听器frm.setLayout(new FlowLayout(); 设置窗体的布局frm.setTitle(”事

36、件测试窗口 ");/设置窗体的titlefrm.setSize(300,200); 设置窗体的大小frm.add(btn);将按钮加入窗体中frm.setVisible(true);/ 设置窗体可见public void action Performed(Acti onEvent e)frm.setBackgro un d(Color.blue);39、Jvav的一个线程由哪几部分组成(P213 )?答:(1)虚拟处理机(虚拟 CPU),封装在类中。它控制着整个线程的运行。(2) 执行的程序代码(Code),传递给Therad类,由Thread类控制顺序执行。(3)程序所处理的数据(

37、Data)传递给Thread类40、Java中可以采用哪 2种方式创建新的线程?分析例 9.1和9.2中创建线程的方法(P215 )?再通过 new关键,最后用线程对答:(1)扩展thread类:首先扩展的类,然后用希望执行的代码来实现run()方法,字实例化该类的一个新对象(一个线程),最后通过start()方法启动线程。(2)实现Runnable接口: Runnable接口实现类,然后创建一个Thread类的对象(创建一个新线程)象调用start()方法启动线程。/通过继承线程创建线程举例。程序名:L09 01 ExtendsThreadjavapublic class L09_01_Ex

38、tendsThread extends Thread / 继承 Thread 类int count = 1, nu mber;public L09_01_ExtendsThread(int num) / 通过形参 num 接收参数传递nu mber = num;System.out.println("创建线程 "+ number);public void run() / 重新构造 run()方法while (true) (” 线程"+ number + ":计数"+ count);if (+co unt = 5)return; / run()p

39、ublic static void main(String args) for (int i = 0; i < 10; i+) L09_01_ExtendsThread tt = new L09_01_ExtendsThread(i + 1);/ 构造线程 tt 并向其传递参数 tt.start(); /通过调用start()方法启动线程 / mai n()/通过 Runnable 接口创建线程举例。程序名:L09 02 ImplementsRunnableThread.javapublic class L09_02mplementsRunnableThread implements R

40、unnable / 实现 Runnable 接口int count = 1, nu mber;public L09_02_lmpleme ntsR unn ableThread(i nt num) nu mber = num;System.out.println("创建线程 "+ number);public void run() / 重新构造 run 方法while (true) (” 线程"+ number + ":计数"+ count); if (+co unt = 5)return; / run ()public static void main(String args) for (int i = 0; i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论