《Java_课后习题答案.pdf》由会员分享,可在线阅读,更多相关《Java_课后习题答案.pdf(138页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1章Java概述 11为什么说Java的运行与计算机硬件平台无关?解答:Java编译器能够产生一种与计算机体系结构无关的字节指令(Byte Code),只要安装了 Java虚拟机,Java就可以在相应的处理机上执行。利用Java虚拟机就可以把Java字节码程序跟具体的操作系统以及硬件平台分隔开来。2 Java有什么特点?解答:Java的特点有:(1)简单性;(2)面向对象;(3)跨平台性;(4)健壮性;(5)安全性;(6)可移植性;(7)多线程性;(8)动态性。3试述Java开发环境的建立过程。解答:Java开发环境的建立过程如下:1.JDK的下载与安装:从htlp:/下载最新版的JD K,
2、单击下载后的文件即出现安装界面;在此界面中打击“next”按钮即可;2.JD K 的配置:安装好JD K 后,设安装路径为c:jdkl.5;还需要在环境变量中进行对应的配置。下面以Windows操作系统为例来进行配置。1)设置JAVA_HOME环境变量:在桌面上用鼠标右键单击“我的电脑”,依次选择“属性”、“高级”、“环境变量”选项,新建一个系统变量,名称为JAVA_HOME,值为叫dkl.5;2)设置CLASSPATH环境变量,设置方法和JAVA_HOME 一样,其值为c:jdkl,5 lib tools.jar;.;3)更新PATH环境变量的值,编辑PATH系统变量,在最后添加c:jdkl
3、.5 bin;.。4 1 什么是Java A PI?它提供的核心包的主要功能是什么?解答:Java A PI就是Java所提供的标准类库,它把程序设计所需要的常用的方法和接口分类封装成包。在 Java A PI中主要包括核心java包、javax扩展包和org扩展包等。核心java包中封装了程序设计所需要的主要应用类。5如何编写和运行Java应用程序?解答:Java应用程序的编写和运行过程:1.建立Java源文件:首先创建Java的源代码,即建立一个文本文档,包括有符合Java规范的语句。2.编译源文件:“编译”就是将一个源代码文件翻译成计算机可以理解和处理的格式的过程。Java源程序编译后会
4、生成一个字节码文件,即带扩展名class的文件。Java字节码文件中包含的使Java解释程序将要执行的指令码。3.执行字节码文件:通过Java虚拟机运行字节码文件。6为什么要为程序添加注释,在Java程序中如何为程序添加注释?解答:注释是程序中的说明性文字,是程序的非执行部分。它的作用是为程序添加说明,增加程序的可读性。Java使用以下二种方式对程序进行注释:1./”符号,它表示从“/”符号开始到此行的末尾位置都作为注释。2.符号,它表示从“/*”开始至!|“*/”结束的部分都作为注释部分,可以使多行注释。7 Java工具集中的javac、java、appletviewer各有什么作用?解答:
5、javac的作用:它是Java编译器,用于将Java源程序编译成字节码文件;java的作用:它是Java解释器,用于解释执行Java字节码文件;appletviewer的作用:Applet程序浏览器,用于测试和运行Applet程序。8如何建立和运行Java Applet程序?解答:J a v a A p p l e t程序的建立和运行过程:1.建立J a v a源文件:首先创建J a v a的源代码,即建立一个文本文档,包括有符合J a v a规范的语句。2 .编译源文件:将J a v a源文件编译成.C l a s s的字节码文件,然后再将字节码文件嵌入到一个HTML文件中。3 .利用浏览器
6、解释执行h t m l文件。第2章Java基础1什么是数据类型?为什么要将数据划分为不同的数据类型?解答:J a v a是一门强类型语言。数据类型是用来区分不同的数据;由于数据在存储时所需要的容量各不相同,不同的数据就必须要分配不同大小的内存空间来存储,所有就要将数据划分成不同的数据类型。2 J a v a中有哪些数据类型?解答:J a v a中有8种基本数据类型:字节型(b y t e),短整型(s h o r t),整型(i n t),长整型(l o n g),字符型(c h a r),单精度型(f l o a t),双精度型(d o u b l e),布尔型(b o o l e a n)
7、。3声明变量的作用是什么?解答:变量时一个数据存储空间的表示,将数据指定给变量,就是将数据存储至对应的内存空间,调用变量,就是将对应的内存空间的数据取出来使用。声明变量就是申请一个内存空间。4若x=4,y=2,计算z 值:(1)z=x&y(2)z=x|y(3)z=xAy(4)z=x y(5)z=x(6)z=x y(7)z=x y 解答:p u b l i c c l a s s T e s t _ 4 p u b l i c s t a t i c v o i d m a i n(S t r i n g l a r g s)i n t x =4,y =2,z;初始化x,y,zz =x&y;求z
8、=x&y;即x与y的值S y s t e m.o u t.p r i n t l n(,4 _ l :+z);z =x|y;/求z=x|y;即x 或y 的值S y s t e m.o u t.p r i n t l n(n4 _ 2:+z);z 二 x八y;求z=x y;即x异或y的值S y s t e m.o u t.p r i n l l n(4 _ 3:+z);z =x y;求z=x y;即x右移y位的值S y s t e m.o u t.p r i n l l n(4 _ 4:n+z);Z =X;求Z=X;即X位反的值S y s t e m.o u t.p r i n t l n(4
9、_ 5:+z);z =x v v y;求z=x y;即x左移y位的值S y s l e m.o u t.p r i n l l n(4 _ 6:+z);z=x y;求z=xy;即x 无符号右移y 位的值System.oul.prinUn(4_7:+z);)5 假设x=10,y=20,z=30,求下列布尔表达式的值:(l)x10|xy&yx(3)(xy+z)&(x+10=20)(4)z-y=x&(y-z)=x(5)xx(6)xy|yx(7)!(xy+z)|!(x+10=20)(8)(!(x=y)&(x!=y)&(xy|yx)解答:public class Test_5 public static
10、 void main(String args)int x=10,y=20,z=30;boolean flag;求x10|x10布尔值flag=x 10|xy&y x 布尔值flag=x y&y x;System.out.prinlln(,5_2:n4-flag);求(xy+z)&(x+1 0=20)布尔值flag=(x y+z)&(x+10=20);System.out.println(,5_3:,+flag);求z-y=二 x&(y-z)=二 x 布尔值flag=z-y=x&(y-z)=x;System.out.println(H5_4:M+flag);/求x10布尔值flag=x 10;S
11、ystem.out.println(n5_5:n4-flag);求xy|yx布尔值flag=x y|y x;Syslem.out.prinUn(“5_6:+flag);求!(xy+z)|!(x+10=20)布尔值flag=!(xy+z)|!(x+10=20);System.out.println(M5_7:M+flag);求(!(x=y)&(x!=y)&(xy|yx)布尔值flag=(!(x=y)&(x!=y)&(x y|y x);System.out.println(5_8:+flag);6什么是表达式?什么是语句?解答:表达式是由运算符,操作数和方法调用按照语言的语法构造而成的符号序列。表
12、达式可用于计算一个格式,位变量赋值以及帮助控制程序执行流程。语句:语句组成了一个执行程序的基本单元,类似于自然语言的句子。包括表达式语句、复合语句、控制语句等。7 Java有哪些数据类型?请描述其分类情况。解答:Java定义了8 个基本数据类型:字节型,短整型,整型,长整型,字符型,浮点型,双精度型,布尔型。它们分为4 组:1)整 数 型(byte,short,int,long)2)浮点数型(float,double)3)字 符 型(char)4)布 尔 型(boolean)8试比较break和continue语句的区别?解答:Break:强行退出循环,忽略循环体中的任何其他语句和循环的条件的
13、条件测试。Continue:语句用来终止本次循环。其功能是终止当前正在进行的本轮循环,即跳过后面剩余的语句,转而执行循环的第一条语句,计算和判断循环条件,决定是否进入下一轮循环。9有一函数:厂 x(xl)y=Y 3x-2(lWx10),4x(x210)编写一程序,给 定 x 值,输出y 值。解答:import java.io.*;public class Test_9 public static void main(String args)throws NumberFormatExceptionJOException InputStreamReader isr=new InputStreamR
14、eader(System.in);BufferedReader br=new BufferedReader(isr);System.out.prinUn(请输入数字x 的值:);double x=Double.parseDouble(br.readLine();double y=0;if(x=1&x 10)y=3*x-2;else y=4*x;)System.out.prinlln(y=+y);)10说明while和do.while语句的差异。解答:Do-while与while语句的主要区别在于,先执行循环体中的语句再计算条件表达式,所以do while语句的循环体至少执行一次。1 1 写出下
15、列语句执行后的结果:for(k=l;k4)break;System.out.printlnCck=,+k);)解答:public class Test_l 1 public static void main(String args)int k;for(k=1;k 4)break;System.out.println(,k=,+k);【12】编写程序,求 三 好 的 值。解答:Wpublic class Test_12 public static void main(String args)int k,sum=0;for(k=l;k=10;k+)sum=sum+k*k;)System.out.p
16、rintln(,sum=,4-sum);)1 3 编写一程序,输入3 个数,能按大小顺序输出。解答:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Test_13 public static void main(String args)throws NumberFormatExceptionJOException(InputStreamReader isr=new InputStreamReader(System.in);Buffered
17、Reader br=new BufferedReader(isr);int a=new int3;int k,temp;System.oul.prinlln(”请输入3 个数字(每输入一个数字后请换行)”);for(int i=0;i 3;i+)ai=Integer.parselnt(br.readLineO);for(int i=0;i a.length;i+)k=i;for(int j=k+1;j a.length;j+)if(ajak)k 二 j;)if(k!=i)temp=ai;ai=ak;ak=temp;)System.out.println(从小到大排 序:);for(int i=
18、0;i a.length;i+)System.out.print(ai+”);)1 4 编写一各Java程序,查找1100之间的素数并将运行结果输出。解答:public class Test_14 public static void main(String args)int m,k,i,n=0;for(m=2;m=100;m=m+)for(i=2;i=m;i+)if(m%i=0)break;)if(m=i)System.out.print(m+“”);n=n+1;)if(n%10=0)System.out.println();)【15】运行下面程序,并分析其执行过程:Public class
19、 multiplication public static void main(String args )int i,j;for(i=l;i10;i+)for(j=l;j10;j+)System.out.print(i+*”+j+*=+i*j+”);System.out.println();)解答:public class Test_15 public static void main(String args)int i,j;for(i=l;i 10;i+)for(j=l;j=i;j+)System.out.print(i+j+,=n+i*j+)System.out.printlnO;结果:1
20、*1=12*1=2 2*2=43*1=3 3*2=6 3*3=94*1=4 4*2=8 4*3=12 4*4:165*1=5 5*2=10 5*3=15 5*4=20 5*5=256*1 =6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=367*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=498*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=649*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81乘法表*/【1
21、6】编写程序实现:输入一组整数,比较并输出其中的最大值和最小值,再将数组元素从小到大排序并将运行结果输出。解答:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Test_16 public static void main(String args)throws NumberFormatExceptionJOException InputStreamReader isr=new InputStreamReader(System.in);Bu
22、fferedReader br=new BufferedReader(isr);int a=new int5;int k,temp;System.out.println(”请输入5 个数字(每输入一个数字后请换行)”);for(int i=0;i 5;i+)ai=Integer.parseInt(br.readLine();)for(int i=0;i a.length;i+)k=i;for(int j=k+1;j a.length;j+)if(aUak)k=j;)if(k!=i)temp=ai;ai=ak;ak=temp;1)System.oul.prinlln(最小数字:+a0);Syst
23、em.out.println(最大数字:”+aa.length-l);System.out.printin(从小到大排序:);for(int i=0;i a.length;i+)System.out.print(ai+);)1 7 编写打印下列图形的程序:(1)(2)(3)#*$#*$#*0。#*$解答:public class Test_17_l public static void main(String args)int i,j;for(i=1;i=4;i+)for(j=l;j=i;j+)System.out.print(#n+u);)System.out.println();publi
24、c class Test_17_2 public static void main(String args)int i,j,k;for(i=0;i 4;i+)for(k=0;k i;k+)System.out.print(u n);)for(j=0;j=6-2*i;j+)System.out.print(*);System.out.printlnO;)public class Test_17_3 public static void main(Stringl args)int i=0,blank,j,star,input=5;/input 是输入的行数String s=,H,;for(i=0;
25、i input;i+)(blank.=Math.abs(i-input/2);for(j=1 ;j=blank;j+)s+=”;star=input-2*blank;for(j=1;j=star;j+)s+=$”;s+二 n”;)System.out.print(s);)1 8 考虑一个2 X 3 的数组a。(1)为a 写一个设声明。试问,这样的声明使a 有多少行,多少列,多少元素?(2)写出a 的第1 行的所有元素的名字。(3)写一条语句,置行1 歹 U2的元素为零。(4)写一个嵌套for结构,将a 的每个元素初始化为零。(5)定一条语句,求第3 列元素的和。解答:(1)数组a 有2 行,3
26、 列,元素个数为6(2)第一行元素的名字为a00,a l,a(3)置行1 列2 的元素为0,语句是a阿 1=0;(4)for(int i=0;i2;i+)for(inj=0;j3;j+)aiUl=0;(5)int sum=O;sum=aO 2+a 1 2;1 9 求3X 3矩形对角元素之和。解答:public class Test_19 public static void main(String args)int i,j,sum=0;int a=new int33;for(i=0;i 3;i+)for(j=0;j 3;j+)aij=i+j;输出二维数组for(i=0;i 3;i+)for(j
27、=0;j 3;j+)System.out.print(aij+”);)System.out.println();)显示对角线之和for(i=0;i 3;i+)sum=sum+aii;)System.out.primln(对角线之和:+sum);)2 0 编写一程序,查找某一字符串是否包含有“abc”。解答:public class Test_20 public static void main(String args)String s=Myangen abcM;int a=s.indexOf(nabcH);/a位找到abc的下标,找不到则返回if(a!=-l)System.out.print(
28、”包含字符串 abc);else System.out.print(不包含字符串 abc);【21】设一字符串中包含有大写字母的字符,也有小写字母的字符,编写一程序,将其中的大小写字母的字符分别输出。解答:public class Test_21 public static void main(String|args)String s=sdfKJjKjjsjdfKKJkjkjSDFsdr;String sl=n,*,s2=H,s3;fbr(int i=O;is.length();i+)s3=,ABCDEFGHIJKLMNOPQRSTUVWXYZM;if(s3.indexOf(s.charAt(
29、i)!=-1)sl=sl+s.charAt(i);)elses2=s2+s.charAt(i);)System.out.prinlln(大写字母:);System.out.println(s 1);System.oul.primln(“小写字母:);System.out.println(s2);)22输出一字符串,统计其中有多少个单词。(单词之间用空格分隔)。解答:import java.util.*;public class Test_22 public static void main(String args)int i=0;String s=Hello world i love java
30、;StringTokenizer st=new StringTokenizer(s,);while(st.hasMoreTokens()i+;System.out.prinlln(st.nextToken();)System.oul.print(单词个数:”+i);)第3章面向对象程序设计基础 1什么是Java程序使用的类?什么是类库?解答:Java程序的基本单位是类。对象是对事物的抽象,而类是对对象的抽象和归纳,找出事物的共性,把具有共同性质的事物归结为一类,得出一个抽象的概念一一类。类是具有相同属性和方法的一组对象的集合,类是在对象之上的抽象,对象则是类的具体化,一旦建立类之后,就可用它来
31、建立许多你需要的对象。J a v a 的类库是系统提供的已实现的标准类的集合,是J a v a 编程的A P I (A p p l i c a t i o nP r o g r a m I n t e r f a c e),它可以帮助开发者方便、快捷地开发J a v a 程序。2如何定义方法?在面向对象程序设计中方法有什么作用?解答:方法的定义由两部分组成:方法声明和方法体。方法声明的基本格式如下:返回类型方法名(形式参数)(方法体内容方法声明包括方法名、返回类型和形式参数,方法的小括号是方法的标志;方法体为实现方法行为的J a v a 语句。在面向对象程序设计中,方法所起的作用是完成对类和对
32、象属性操作。【3】简述构造方法的功能和特点。下面的程序片段是某学生为st u d e n t 类编写的构造方法,请指出其中的错误。v o i d S t u d e n t (i n t n o,S t r i n g n a m e)(st u d e n t N o=n o;st u d e n t N a m e=n a m e;r e t u r n n o;)解答:构造方法是一个特殊的方法,主要用于初始化新创建的对象。构造方法的方法名要求与类名相同,用户不能直接调用,只能通过n e w 运算符调用,而且构造方法是不返回任何数据类型,甚至也不返回v o i d 数据类型,即不能在构造方
33、法前加v o i d。以上的代码段出错于:构造方法S t u d e n t。前不能加v o i d 不能用r e t u r n 语句 4定义一个表示学生的st u d e n t 类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。编写J a v a 程序创建st u d e n t 类的对象及测试其方法的功能。解答:程序代码段如下:c l a ss st u d e n t p r i v a t e S t r i n g i d;p r i v a t e S t r i n g n a m e;p r i v a t e S t r i n g
34、se x;p r i v a t e i n t a g e;p u b l i c S t r i n g g e t l d()r e t u r n i d;p u b l i c S t r i n g g e t N a m e()r e t u r n n a m e;p u b l i c S t r i n g g e t S e x()r e t u r n se x;p u b l i c i n t g e t A g e()r e t u r n a g e;v o i d se t A g e(i n t a g e)t h i s,a g e =a g e;p u
35、b l i c c l a ss T e st S t u d e n t p u b l i c st a t i c v o i d m a i n(S t r i n g a r g s)st u d e n t st u =n e w st u d e n t (“040139 8”,杨小明,男”,20);S y st e m,o u t.p r i n t I n (z zst u d e n t i n f o:+“n 学号:,z+st u.g e t l d()+n 姓名”+st u.g e t N a m e ()+z z n 性别:+st u.g e t S e x()+n
36、年龄:+st u.g e t A g e O);st u.se t A g e(19);S y st e m.o u t.p r i n t I n (修改后的年龄为:+st u.g e t A g e ();)5 扩充、修改程序。为第4 题的st u d e n t 类定义构造函数初始化所有的域,增加一个方法p u b l i c S t r i n g p r i n t l n f o()把st u d e n t 类对象的所有域信息组合形成一个字符串,并在主类中创建学生对象及测试各方法的功能。解答:程序代码段如下:c l a s s s t u d e n t (p r i v a t
37、 e St r i n g i d;p r i v a t e St r i n g n a m e;p r i v a t e St r i n g s e x;p r i v a t e i n t a g e;s t u d e n t(St r i n g i d ,St r i n g n a m e,St r i n g s e x,i n t a g e)t h i s,i d =i d;t h i s,n a m e =n a m e;t h i s,s e x =s e x;t h i s,a g e 二 a g e;)p u b l i c St r i n g g e t
38、 l d O r e t u r n i d;p u b l i c St r i n g g e t Na m e()r e t u r n n a m e;p u b l i c St r i n g g e t Se x()r e t u r n s e x;p u b l i c i n t g e t Ag e()r e t u r n a g e;v o i d s e t Ag e(i n t a g e)t h i s,a g e =a g e;p u b l i c St r i n g p r i n t i n f o 0 St r i n g s=s t u d e n
39、 t i n f o:+n 学号:+i d+n 姓名+n a m e+n 性别:+s e x+“n年龄+a g e;Sy s t e m,o u t.p r i n t i n (s);r e t u r n s;)p u b l i c c l a s s Te s t St u d e n t p u b l i c s t a t i c v o i d m a i n(St r i n g a r g s )s t u d e n t s t u =n e w s t u d 6n t (“0401398,杨小明,男 ,20);s t u.p r i n t i n f o 0;stu
40、.setAge(19);stu.printinfo();)6什么是修饰符?修饰符的种类有哪些?它们各有什么作用?解答:修饰符是用于限定类对象使用的权限,从而实现类中成员的信息隐藏。访问修饰符适用于类成员,而不是方法内部的局部变量。Java常见的访问修饰符有这4种:private、default-,protected 和public。(1)public可以被所有的类访问(2)pravite只能被类本身访问,其他类无法访问(3)protected可以被类本身、它的子类(包括同一个包中以及不同包中的子类)(4)default属于默认的访问状态,可以被类本身和同一个包中的类访问 7什么是抽象类?为什么
41、要引入抽象类的概念?解答:抽象类是用来描述人们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。抽象类不具备实际功能,是专门设计用来让子类继承的类,把这些具有共同特征的方法抽象出来,由子类负责这些抽象方法的实现细节,而父类仅提供此方法的名称和声明、没有方法的主体,该类。8什么是抽象方法?如何定义、使用抽象方法?解答:用abstract关键字修饰的方法称为抽象方法.抽象方法定义时,需在方法名前加上关键字abstract,抽象方法只有方法声明,没有代码实现的空方法。因此,必须通过其子类来重写父类中定义的每一个抽象方法。9包的作用是什么?如何在程序中引
42、入已定义的类?使用已定义的用户类、系统类有哪些主要方式?解答:包的作用是将类和接口封装在一起,方便了类和接口的管理和调用。要引入包中已定义的类,必须用关键字import来导入这些类所在的包。import语句的一般形式如下:import包名.类名其中类名可以用通配符“*”代替。使用已定义的用户类、系统类主要有三种方式:直接调用、继承和创建己定义的用户类、系统类的对象。但无论采用哪种方式,使用已定义的用户类、系统类的前提条件是用户类、系统类应该是用户程序可见的类,为此用户程序需要用import语句引人它所用到的用户类、系统类或用户类、系统类所在的包。10什么是继承?如何定义继承关系?解答:同类事物
43、具有共同性,在同类事物中,每个事物又具有其特殊性。运用抽象的原则舍弃对象的特殊性,抽取其共同性,则得到一个适应于一批对象的类,这便是基类(父类),而把具有特殊性的类称为派生类(子类),派生类的对象拥有其基类的全部或部分属性与方法,称作派生类对基类的继承。派生类继承基类,必须使用关键字extends来声明。比如派生类B继承基类A,派生类B定义的一般形式如下:class B extends A,)【11】什么是多态,如何实现多态?解答:多态是指一个程序中同名的不同方法共存的情况。这些方法同名的原因是它们的最终功能和目的都相同,但是由于在完成同一功能时,可能遇到不同的具体情况,所以需要定义含不同的具
44、体内容的方法,来代表多种具体实现形式。多态通常是一个消息在不同的类中用不同的方法实现的。多态的实现是由消息的接收者确定一个消息应如何解释,而不是由消息的发送者确定,消息的发送者只需要指导另外的实例可以执行一种特定操作即可。J a v a 中提供两种多态机制:方法重载与方法重写。1 2 解释th i s 和s u p e r的意义和作用。解答:th i s 指的是引用当前对象或类名称,当一个类的实例变量名与一个方法中参数名相同时,则参数就隐藏了实例变量名,此时可通过使用关键字th i s 来访问它;s u p e r用来引用当前对象的父类,通过s u p e r来访问父类被子类隐藏的成员变量、成
45、员方法以及父类的构造方法。由于子类不继承父类的构造方法,可使用s u p e r来调用父类的构造方法,并且s u p e r必须是子类构造方法中的第一条语句。1 3 什么是接口?为什么要定义接口?接口和类有什么异同?解答:接口是用来调节各类之间的相互关系的一种结构,接口是抽象类的一种,只包含常量和方法的定义,而没有变量和具体方法的实现,且其方法都是抽象方法。接口定义的格式如下:p u b l i c i n te rf a c e 接 口 名 e x te n d s 父接口名列表 接口体e xt e n ds 子句有类声明的e xt e n ds 子句基本相同,不同的是一个接口可有多个父接口
46、,用逗号隔开,而一个类只能有一个父类。J a v a 中的类只能实现单重继承,这虽然可以简化编程,但毕竟没有完全实现面向对象的功能。定义接口的主要作用,就是帮助J a v a 实现类间多重继承的结构。而且接口还有以下好处:接口可以被多个类所实现,这些类可以不相关,从而具有相同的行为。通过接口可以了解对象的行为,而无需了解对象所对应的类的结构。【1 4】将一个抽象类改写成接口,并实现这个接口。解答:程序代码段如下:/抽象类的应用示例a b s t r a ct cl a s s 动物 p ub l i c a b s t r a ct v oi d cr y();cl a s s 狗 e xt
47、e n ds 动物 p ub l i c v oi d cr y()S ys t e m,out.p r i n t i n (汪汪.);cl a s s T e s t p ub l i c s t a t i c v oi d m a i n(S t r i n g a r g s )动物 don g w u;don g w u=n e w 狗();don g w u.cr y();)将抽象类改写成接口,并实现这个接口i n t e r f a ce 动物 p ub l i c v oi d cr y();cl a s s 狗 i m p l e m e n t s 动物p ub l i
48、c v oi d cr y()S ys t e m.out.p r i n t i n (汪汪.);)cl a s s T e s t p ub l i c s t a t i c v oi d m a i n(S t r i n g a r g s )动物 don g w u;don g w u=n e w 狗();don g w u.cr y();)1 5 编写一个程序实现包的功能。解答:包的功能实现包括两步骤:打包、引用包,其具体实现如下:(1)设当前运行目录的子目录t e s t b a g 下有M yB a g.cl a s s 类,其源程序如下:p a ck a g e t e s
49、 t,b a g;p ub l i c cl a s s M yB a g(p ub l i c v oi d p r i n t()S ys t e m.out.p r i n t i n(包的功能测试);)(2)/在当前目录的T e s t B a g.j a v a 中,要使用子目录t e s t b a g 下有M yB a g.cl a s s 类中的p r i n t ()方法,其源程序如下:i m p or t t e s t.b a g.M yB a g;p ub l i c cl a s s T e s t B a g p ub l i c s t a t i c v oi
50、d m a i n(S t r i n g a r g s )M yB a g m b=n e w M yB a g();m b.p r i n t ();)1 6 填空:(1)如果类A继承了类B,则类A被 称 为 一 类,类B被称为类。解答:子 父(2)继承使 成为可能,它节省了开发时间。解答:代码复用(3)如果一个类包含一个或多个a b s t r a ct 方法,它就是一个_ _ _ _ 类。解答:抽象(4)一个子类一般比其超类封装的功能要一。解答:强(5)标记成的类的成员不能由该类的方法访问。解答:s t a t i c(6)J a v a 用关键字指明继承关系。解答:e xt e n