《Java基础入门》课后习题答案
第1章 Java开发入门
一、填空题
1、Java EE、Java SE、Java ME
2、JRE
3、javac
4、bin
5、path、classpath
二、选择题
1、ABCD 2、C 3、D 4、B 5、B
三、简答题
1、面向对象、跨平台性、健壮性、安全性、java入门课件可移植性、多线程性、动态性等。
2、JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。
JDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。
四、编程题
public class HelloWorld {
public static void main(String[] args) {
System.out.println("这是第一个Java程序!");
}
}
第2章 Java编程基础
一、填空题
1、 class
2、 true和false
3、 单行注释、多行注释、文档注释
4、 基本数据类型、引用数据类型
5、 1、2、4、8
6、 & && | ||
7、 0
8、 5
9、 34
10、56
二、判断题
1、错 2、对 3、错 4、对 5、错
三、选择题
1、AD 2、AD 3、C 4、ABCD 5、C 6 、A 7、AC 8、A 9、B 10、A
四、程序分析题
1、编译不通过。int值4和b相加时,由于变量b的类型为byte,取值范围没有int类型大,存不下int类型的值,因此编译不通过。
2、编译不通过。这是因为y是在最里层的代码块中定义的一个变量,只有在那个代码块中
才可使用,在使用y = x;语句时已经超过了y变量的作用域,所以编译无法通过。
3、打印结果为:3。
4、打印结果为:
9
8
7
五、简答题
1、Java语言的八种基本数据类型有:byte字节型,占一个字节。short短整型,占两个字节。int整型,占4个字节。long长整型,占8个字节。float单精度浮点型,占4个字节。double双精度浮点型,占8个字节。char字符型,占两个字节。boolean型,表示逻辑值,有true和false两个值,分别占一个字节。
2、如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用“&&”进行连接,当“&&”左边的表达式为false,则不会执行其右边的表达式。例如定义int x = 2,y = 0; boolean b = x < y & x / 2 > 0表达是会发生被0除异常,因为x / y的表达式执行了。而boolean b = x < y & x / 2 > 0是不会出现这种异常的,因为x < y为false,表达式x / y不会执行。
3、方法重载指的是在一个类中可以声明多个同名的方法,而方法中参数的个数或者数据类型不一致。调用这些同名的方法时,JVM会根据实际参数的不同绑定到不同的方法。
六、编程题
1、参考答案
public class Test01 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 100; i++) {
if (i % 2 != 0)
sum += i;
}
System.out.println(sum);
}
}
2、参考答案
public class Test02 {
public static void main(String args[]) {
int y = function(0);
System.out.println(y);
}
public static int function(int x) {
int y;
if (x > 0) {
y = x + 3;
} else if (x == 0) {
y = 0;
} else {
y = x * x - 1;
}
return y;
}
}
3、参考答案
public class Test03 {
public static void main(String[] args) {
int[] arr = { 25, 24, 12, 76, 101, 96, 28 };
for (int i = 0; i < arr.length - 1; i++) {
// 定义内层循环
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) { // 比较相邻元素
// 下面的三行代码用于交换两个元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
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、B 2、D 3、B 4、ABC 5、ABCD 6、ACD 7、ABCD 8、ABCD 9、D 10、D
四、程序分析题
1、程序不能编译通过,因为在类A中的成员变量secret用private修饰,所以在类Test1中无法访问。
2、程序不能编译通过,因为在静态方法method()中不能访问非静态成员变量x。
3、程序能够编译通过,运行的结果为“inner”。
五、简答题
1、构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时 候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声 明、在方法中不能使用return语句返回一个值
2、单例模式可以保证在整个程序运行期间针对该类只存在一个实例对象。
六、编程题
1、参考答案
class Student {
private String name;
private double grade;
public Student() {
}
public Student(String name, double grade) {
this.name = name;
ade = grade;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getGrade() {
return grade;
}
public void setGrade(double grade) {
ade = grade;
}
}
public class Test01 {
public static void main(String[] args) {
Student stu1 = new Student();
stu1.setName("zhangsan");
stu1.setGrade(99);
Student stu2 = new Student("lisi", 100);
}
}
2、参考答案
class Father {
private String name = "zhangjun";
class Child {
public void introFather() {
System.out.println("My Father's name is " + name);
}
}
}
public class Test02 {
public static void main(String[] args) {
Father.Child child = new Father().new Child();
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、B 2、C 3、ABC 4、 ABCD 5、C 6、AC 7、C 8、D 9、A 10、B
四、程序分析题
1、程序编译能通过,这是因为int x = 2 / 0; System.out.println(x);这两条语句使用了try块,捕获了程序因为除以0而产生的异常情况,之后程序会继续向下执行,输出“进入catch代码块”,“进入finally代码块”。
2、程序编译不通过,这是因为在程序中使用了final关键字修饰Animal类,使得Animal类不能被继承。shout()方法中同样使用了final关键字,使得该方法不能被重写。
3、程序编译能通过,输出结果为“动物叫!”和“汪汪……”,因为在程序中调用shout()方法时,首先会通过super.shout()调用父类的方法说出“动物叫!”之后再输出“汪汪……”
4、程序编译不通过,因为接口中定义的方法不能有方法体,所以定义的eat()方法是错误的。接口中的方法必须在子类中全部实现,由于run()方法在子类中并没有重新实现,所以这也是错误的。
五、简答题
1、在继承关系中,子类的方法与父类的某一方法具有相同的方法名、返回类型和参数列表,则称子类的该方法重写(覆盖)父类的方法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论