《Java基础入门》课后习题
第1章 Java开发入门
一、填空题
1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。 2、Java程序的运行环境简称之为JRE_____。 3、编译Java程序需要使用_javac_____命令。
4、和两个可执行程序存放在JDK安装目录的bin______目录下。
5、path______环境变量用来存储Java的编译和运行工具所在的路径,而_classpath_____环境变量则用来保存保存Java虚拟机要运行的“.class”文件路径。
二、选择题
1、以下选项中,哪些属于JDK工具(多选)ABCD
A、Java编译器 B、Java运行工具 C、Java文档生成工具 D、Java打包工具 2、Java属于以下哪种语言C
A、机器语言 B、 汇编语言 C、高级语言 D、以上都不对
3、下面哪种类型的文件可以在Java虚拟机中运行D
A、.java B、.jre C、.exe D、.class
4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中命令的作用是以下哪一种 B
A、Java文档制作工具 B、Java解释器 C、Java编译器 D、Java启动器 5、如果jdk的安装路径为:d:\\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项B
A.d:\\jdk; B.d :\\jdk\\bin; C.d:\\jre\\bin; D.d:\\jre; 三、问答题
1、简述Java的特点。
面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、简述JRE与JDK的区别。
JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。 JDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。 JDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。 四、编程题
使用记事本编写一个HelloWorld程序,在dos命令行窗口编译运行。请按照题目的要求编写程序并给出运行结果。
public class HelloWorld { }
public static void main(String[] args) { }
\这是第一个Java程序!\
第2章 Java编程基础
一、填空题
1、Java中的程序代码都必须在一个类中定义,类使用__class____关键字来定义。 2、布尔常量即布尔类型的两个值,分别是_true_____和_flase_____。
1) 3、Java中的注释可分为三种类型,分别是_单行注释else 语句针对x的值进行三种情况的
判断。
2) 根据判断结果分别执行不同的表达式,并将结果赋予变量y。 3) 在方法的最后返回y的值。
4) 在main方法中调用设计好的方法,传入一个int型的值,将方法的返回值打印。 3、请编写程序,实现对数组{25,24,12,76,101,96,28} 的排序。 提示:使用冒泡排序算法。
第3章 面向对象(上)
一、填空题
1、 面向对象的三大特征是封装性_、_继承性_____和__多态性____。 2、 在Java中,可以使用关键字__new____来创建类的实例对象。
3、 定义在类中的变量被称为__成员变量____,定义在方法中的变量被称为局部变量______ 4、 面向对象程序设计的重点是_类___的设计,__类____是用来创建对象的模板。 5、 在非静态成员方法中,可以使用关键字_this__访问类的其它非静态成员。
6、 当一个对象被当成垃圾从内存中释放时,它的__finalize()____方法会被自动调用。
7、 被static关键字修饰的成员变量被称为_静态变量_,它可以被该类所有的实例对象共享。 8、 在一个类中,除了可以定义属性、方法,还可以定义类,这样的类被称为_内部类_____。
9、在Java中,提供了一个_javadoc_____命令,用于将程序中的文档注释提取出来,生成HTML格式
的帮助文档。
10、所谓类的封装是指在定义一个类时,将类中的属性私有化,即使用_private_____关键字来修饰。 二、判断题
1、在定义一个类的时候,如果类的成员被private所修饰,该成员不能在类的外部被直接访问。对 2、Java中的每个类都至少有一个构造方法,一个类中如果没有定义构造方法,系统会自动为这个类创建一个默认的构造方法。对
3、声明构造方法时,不能使用private关键字修饰。错
4、类中static修饰的变量或方法,可以使用类名或对象的引用变量访问。对 5、方法内部类中不能访问外部类的成员变量。错
三、选择题
1、类的定义必须包含在以下哪种符号之间B
A、方括号[] B、花括号{} C、双引号“” D、圆括号() 2、下面哪一个是正确的类的声明 D
A、 public void HH{…} B、 public class Move(){…} C、 public class void number{} D、 public class Car{…}
3、在以下什么情况下,构造方法会被调用B
A、 类定义时 B、 创建对象时 C、 调用对象方法时 D、 使用对象的变量时 4、下面对于构造方法的描述,正确有哪些(多选)ABC A、方法名必须和类名相同
B、方法名的前面没有返回值类型的声明
C、在方法中不能使用return语句返回一个值
D、当定义了带参数的构造方法,系统默认的不带参数的构造方法依然存在 5、使用this调用类的构造方法,下面的说法正确的是(多选)ACD(ABCD) A、使用this调用构造方法的格式为this([参数1,参数2…]) B、只能在构造方法中使用this调用其它的构造方法 C、使用this调用其它构造方法的语句必须放在第一行 D、不能在一个类的两个构造方法中使用this互相调用 6、下面哪些可以使用static关键字修饰(多选)AC(ACD)
A、 成员变量 B、局部变量 C、成员方法 D、成员内部类 7、关于内部类,下面说法正确的是(多选)ACD(ABCD)
A、成员内部类是外部类的一个成员,可以访问外部类的其它成员 B、外部类可以访问成员内部类的成员
C、方法内部类只能在其定义的当前方法中进行实例化
D、静态内部类中可以定义静态成员,也可以定义非静态成员 8、下面对于单例设计模式的描述,正确的是(多选)BCD(ABCD) A、类中定义一个无参的构造方法,并且声明为私有
B、在内部创建一个该类的实例对象,使用静态变量引用该实例对象 C、使用private修饰静态变量,禁止外界直接访问 D、定义静态方法返回该类实例 9、请先阅读下面的代码D
public class Test { public Test(){
\构造方法一被调用了\ }
public Test(int x){ this();
\构造方法二被调用了\ }
public Test(boolean b){ this(1);
\构造方法三被调用了\ }
public static void main(String[] args) {
}
}
Test test = new Test(true);
上面程序的运行结果为下列哪一项
A、构造方法一被调用了 B、构造方法二被调用了 C、构造方法三被调用了 D、以上三个选项之和
10、Outer类中定义了一个成员内部类Inner,需要在main()方法中创建Inner类实例对象,以下四种方式哪一种是正确的D
A、 Inner in = new Inner() B、Inner in = new (); C、 in = new (); D、 in = new Outer().new Inner(); 四、程序分析题
阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。否则请说明编译失败的原因。
代码一:不能,secret是私有成员,只能类内部访问(程序不能编译通过,因为在类A中的成员变量secret用private修饰,所以在类Test1中无法访问)
class A { }
public class Test1 { }
public static void main(String[] args) {
A a = new A();
}
private int secret = 5;
代码二:250(程序不能编译通过,因为在静态方法method()中不能访问非静态成员变量x。)
public class Test2 { }
int x = 50;
static int y =200 ;
public static void method() { }
();
}
public static void main(String[] args) {
代码三:Inner为私有内部类,不允许外部访问(inner)Inner inner = new Outer().new Inner();可以用外部类访问内部类
public class Outer {
public String name=\ private class Inner { }
public static void main(String[] args) {
Inner inner = new Outer().new Inner(); String name=\ void showName(){
}
}
}
五、简答题
1、构造方法和普通的成员方法有什么区别
构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return语句返回一个值
2、单例设计模式具备哪些特点
单例模式可以保证在整个程序运行期间针对该类只存在一个实例对象。
六、编程题
1、请按照以下要求设计一个学生类Student,并进行测试。 要求如下:
1)Student类中包含姓名、成绩两个属性
2)分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值.
3)Student类中定义一个无参的构造方法和一个接收两个参数的构造方法,两个参数分别为姓名和成绩属性赋值
4)在测试类中创建两个Student对象,一个使用无参的构造方法,然后调用方法给姓名和成绩赋值,一个使用有参的构造方法,在构造方法中给姓名和成绩赋值
2、定义一个Father和Child类,并进行测试。
要求如下: 1)Father类为外部类,类中定义一个私有的String类型的属性name,name的值为“zhangjun”。 2)Child类为Father类的内部类,其中定义一个introFather()方法,方法中调用Father类的name属性。
3)定义一个测试类Test,在Test类的main()方法中,创建Child对象,并调用introFather ()方法。
第4章 面向对象(下)
一、填空题
1、在Java语言中,允许使用已存在的类作为基础创建新的类,这种技术我们称为继承______。 2、一个类如果实现一个接口,那么它就需要实现接口中定义的全部_方法_____,否则该类就必须定义成_抽象类_____。
3、在程序开发中,要想将一个包中的类导入到当前程序中,可以使用_import_____关键字。
4、一个类可以从其它的类派生出来,派生出来的类称为_子类_____,用于派生的类称为_基类_____或者__父类____。
5、 JDK中定义了大量的异常类,这些类都是_Exception_____类的子类或者间接子类。
6、定义一个Java类时,如果前面加使用_final_____关键字修饰,那么该类不可以被继承。 7、如果子类想使用父类中的成员,可以通过关键字__super____引用父类的成员。 8、在Java语言中,所有的类都直接或间接继承自_Object_____类。 9、异常的捕获通常由try、catch两部分组成,_try_____代码块用来存放可能发生异常,_catch_____
代码块用
来处理产生的异常。