System.out.print(arr[i]+"");//打印元素和空格
}
}
}
第3章面向对象(上)
一、填空题
1、封装、继承、多态
2、new
3、成员变量、局部变量
4、类、类
5、this
6、finalize()
7、静态变量
8、内部类
9、javadoc
10、private
二、判断题
1、对2、对3、错4、对5、错
三、选择题
1、B2、D3、B4、ABC5、ABCD6、ACD7、ABCD8、ABCD9、D10、D
四、程序分析题
1、程序不能编译通过,因为在类A中的成员变量secret用private修饰,所以在类Test1中无法访问。
2、程序不能编译通过,因为在静态方法method()中不能访问非静态成员变量x。
3、程序能够编译通过,运行的结果为“inner”。
五、简答题
1、构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。
而普通方法只有在使用的时候才会被调用。
在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return语句返回一个值
2、单例模式可以保证在整个程序运行期间针对该类只存在一个实例对象。
六、编程题
1、参考答案
classStudent{
privateStringname;
privatedoublegrade;
publicStudent(){
}
publicStudent(Stringname,doublegrade){
this.name=name;
this.grade=grade;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicdoublegetGrade(){
returngrade;
}
publicvoidsetGrade(doublegrade){
this.grade=grade;
}
}
publicclassTest01{
publicstaticvoidmain(String[]args){
Studentstu1=newStudent();
stu1.setName("zhangsan");
stu1.setGrade(99);
Studentstu2=newStudent("lisi",100);
}
}
2、参考答案
classFather{
privateStringname="zhangjun";
classChild{
publicvoidintroFather(){
System.out.println("MyFather'snameis"+name);
}
}
}
publicclassTest02{
publicstaticvoidmain(String[]args){
Father.Childchild=newFather().newChild();
child.introFather();
}
}
第4章面向对象(下)
一、填空题
1、继承
2、方法,抽象类
3、import
4、子类、父类、基类
5、Exception
6、final
7、super
8、Object
9、try、catch
10、jar–cvf,java–jar
二、判断题
1、错2、对3、错4、对5、对
三、选择题
1、B2、C3、ABC4、ABCD5、C6、AC7、C8、D9、A10、B
四、程序分析题
1、程序编译能通过,这是因为intx=2/0;System.out.println(x);这两条语句使用了try块,捕获了程序因为除以0而产生的异常情况,之后程序会继续向下执行,输出“进入catch代码块”,“进入finally代码块”。
2、程序编译不通过,这是因为在程序中使用了final关键字修饰Animal类,使得Animal类不能被继承。
shout()方法中同样使用了final关键字,使得该方法不能被重写。
3、程序编译能通过,输出结果为“动物叫!
”和“汪汪……”,因为在程序中调用shout()方法时,首先会通过super.shout()调用父类的方法说出“动物叫!
”之后再输出“汪汪……”
4、程序编译不通过,因为接口中定义的方法不能有方法体,所以定义的eat()方法是错误的。
接口中的方法必须在子类中全部实现,由于run()方法在子类中并没有重新实现,所以这也是错误的。
五、简答题
1、在继承关系中,子类的方法与父类的某一方法具有相同的方法名、返回类型和参数列表,则称子类的该方法重写(覆盖)父类的方法。
2、多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。
简单的说,多态就是使用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序会得到不同的运行效果。
3、在Java中,使用abstract关键字修饰的类称之为抽象类。
抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。
抽象类通常用于表示一种抽象的概念。
接口可以说是一种特殊的抽象类,接口中只能定义常量和抽象方法。
由于接口的特殊性,在定义时需要使用interface关键字。
六、编程题
1、参考答案
classStudent{
publicStringname;
publicintage;
publicStudent(Stringname,intage){
this.name=name;
this.age=age;
}
publicvoidshow(){
System.out.println("name:
"+name+"age:
"+age);
}
}
classUnderGraduateextendsStudent{
publicStringdegree;
publicUnderGraduate(Stringname,intage,Stringdegree){
super(name,age);
this.degree=degree;
}
publicvoidshow(){
System.out.println("name:
"+name+"age:
"+age+"degree:
"+degree);
}
}
publicclassTest01{
publicstaticvoidmain(String[]args){
Studentstudent=newStudent("zhangsan",16);
student.show();
UnderGraduateunderGraduate=newUnderGraduate("lisi",20,"bechalor");
underGraduate.show();
}
}
2、参考答案
interfaceShape{
doublearea(doublegivenValue);
}
classSquareimplementsShape{
publicdoublearea(doublesideLength){
returnsideLength*sideLength;
}
}
classCircleimplementsShape{
publicdoublearea(doubler){
returnMath.PI*r*r;
}
}
publicclassTest02{
publicstaticvoidmain(String[]args){
Shapesquare=newSquare();
Shapecircle=newCircle();
System.out.println(square.area
(2));
System.out.println(circle.area(3));
}
}
3、参考答案
classNoThisSongExceptionextendsException{
publicNoThisSongException(){
super();
}
publicNoThisSongException(Stringmessage){
super(message);
}
}
classPlayer{
publicvoidplay(intindex)throwsNoThisSongException{
if(index>10){
thrownewNoThisSongException("您播放的歌曲不存在");
}
System.out.println("正在播放歌曲");
}
}
publicclassTest03{
publicstaticvoidmain(String[]args){
Playerplayer=newPlayer();
try{
player.play(13);
}catch(NoThisSongExceptione){
System.out.println("异常信息为:
"+e.getMessage());
}
}
}
第5章多线程
第6章JavaAPI
一、填空题
1、String、StringBuffer
2、Date、Calendar、DateFormat
3、getRuntime()
4、sqrt()
5、DateFormat
6、π、e
7、Random、java.util
8、length()
9、静态
10、edcba
二、判断题
1、错2、错3、对4、错5、对
三、选择题
1、C2、C3、D4、C5、C6、B7、C8、A9、A10、B
四、程序分析题
1、程序编译能通过,输出结果如下
5
7.0
-8.0
-5
8.1
-6.1
2、程序编译能通过,输出结果如下
str.length():
15
str.charAt(0):
d
lastIndexOf(m):
10
substring(2,4):
fe
indexOf(g):
5
五、简答题
1、String类是不可变类,即字符串值一旦初始化后就不可能改变。
StringBuffer是可变字符串类,类似String的缓冲区,可以修改字符串的值。
2、Date类用来表示某个特定的瞬间,能够精确到毫秒。
而在实际应用中,往往需要把一个日期中的年、月、日等信息单独返回进行显示或处理,这个类中的大部分方法都已被标记过时。
Calender类基本取代了Date类,该类中定义了一系列用于完成日期和时间字段操作的方法。
Calendar的getTime()方法,getTime()返回一个表示Calendar时间值的Date对象,同时Calendar有一个setTime(Datedate)方法,setTime()方法接收一个Date对象,将Date对象表示的时间值设置给Calendar对象,通过这两个方法就可以完成Date和Calendar对象之间的转换。
六、编程题
1、参考答案
publicclassTest01{
publicstaticvoidmain(String[]args){
Stringstr="HelloWorld";
//字符串转成char数组
char[]ch=str.toCharArray();
StringBufferbuffer=newStringBuffer();
for(inti=str.length()-1;i>=0;i--){
if(ch[i]>='A'&&ch[i]<='Z'){
buffer.append(String.valueOf(ch[i]).toLowerCase());
}elseif(ch[i]>='a'&&ch[i]<='z'){
buffer.append(String.valueOf(ch[i]).toUpperCase());
}
}
System.out.println(buffer.toString());
}
}
2、参考答案
importjava.text.DateFormat;
importjava.util.Calendar;
importjava.util.Date;
publicclassTest02{
publicstaticvoidmain(String[]args){
Calendarcalendar=Calendar.getInstance();
calendar.add(Calendar.DATE,100);
Datedate=calendar.getTime();
DateFormatformat=DateFormat.getDateInstance(DateFormat.FULL);
Stringstring=format.format(date);
System.out.println(string);
}
}
3、参考答案
importjava.util.Random;
publicclassTest03{
publicstaticvoidmain(String[]args){
Randomrand=newRandom();
int[]num=newint[5];
for(inti=0;inum[i]=20+rand.nextInt(31);
System.out.println(num[i]);
}
}
}