乐趣区

java课后题复习

第一章 java 发展史与开发环境
1、java 语言特点
(1)面向对象(2)跨平台性(3)可移植性(4)安全性(5)并发性(6)分布式(7)简单易用
2、java 程序执行过程
(1)源文件由编译器编译成字节码(ByteCode)(2)字节码由 java 虚拟机解释执行
第四章 java 的继承性与多态性
1、如果有两个类 A,B(注意不是接口),你想同时使用这两个类的功能,你会如何编写这个 C 类呢
class A extends B;class C extends A
2、接口有什么优点:
java 中不支持类的多继承,即不能同时继承多个直接父类。但接口中没有具体的实施细节,也就没有和存储空间的关联,所以可以将多个接口合并在一起,间接实现类间多重继承的功能。
3、在 java 中如果声明一个类为 final,表示什么意思?
final 修饰的类被称为终极类,它不能被继承
more:final 修饰的方法被称为终极方法,如果父类中的某个方法用 final 修饰,则子类不能再重写该方法了,子类只能继承该方法的功能,注意:final 不能被用来修饰构造函数。终极类中的方法默认是终极方法
4、请简述重载和重写的区别
重载:
(1)方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数 / 类型。重载是一个类中多态性的一种表现。
(2)java 的方法重载,就是在类中可以创建多个方法,他们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给他们的不同参数个数和参数类型来决定具体使用哪个方法,这就是多态性。
(3)重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回类型作为重载函数的区分标准。
重写:
(1)父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在 Java 中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
(2) 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可使用 super 关键字,该关键 字引用了当前类的父类。
(3) 子类函数的访问修饰权限不能少于父类的。
5、什么是继承
继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
1、编写 Animal 接口,接口中声明 run() 方法
interface Animal{
abstract void run();
}
2、定义 bird 类和 Fish 类实现 Animal 接口
class Bird implements Animal{
}
class Fish implements Animal{
}
3、编写 Bird 类和 Fish 类的测试程序,并调用其中的 run 方法
class Bird implements Animal{
public void run(){
System.out.println(“ 测试成功 ”);
}
}
class Fish implements Animal{
public void run(){
System.out.println(“ 测试成功 ”);
}
}
public class Animaljiekou{
public static void main(String[] args){
Animal p1;
p1 = new Bird();
p1.run();
p1 = new Fish();
p1.run();
}
}
第五章 java 异常处理机制
1、简述 java 中的异常处理机制的简单原理和应用
原理:每当产生异常时,如果没有程序进行相应的处理,则程序会中断的现象,那么此时实际上产生一个异常后,JVM 会抛出一个异常类的实例化对象,如果此时使用了 try 语句进行补货的话,则可以进行异常处理,如果没有的话,则交给了 JVM 进行处理,当 try 语句补货到了一场之后,会与 catch 中的异常类型进行匹配,如果匹配成功,则使用此 catch 语句进行处理。应用:简单的应用,就是在所有 throws 关键字的地方加入 try…catch
2、简述 java 中异常处理的机制
java 异常处理机制可以从两个方面来描述,当一个 java 程序违反了 java 语义的时候,JVM 就会抛出一个异常,除此之外还可以自定义异常,去拓展这种语义的检查,并在合适的时机,通过 throw 关键字抛出异常
第六章 数组、字符串和集合类
1、
int array[];
array = new int[5];
3、声明数组变量会为数组分配内存空间吗,为什么?
数组声明以后在内存中没有分配具体的存储空间,也没有设定数组的长度
5、有一个整数数组,其中存放着 1,2,3,4,5,6,7,8,9,将该数组倒序存放并输出
public class ReverseArray {
public static void main(String[] args) {
int arr[] = new int[] {1,2,3,4,5,6,7,8,9};
for(int i = 0; i < arr.length / 2; i++){
int temp = arr[i];
arr[i] = arr[arr.length – i – 1];
arr[arr.length – i – 1] = temp;
}
for (int i = 0; i < arr.length; i++) {
//System.out.println(arr[i]); // 每个一行
System.out.print(” “+arr[i]); // 全部一行
}
System.out.println();
}
}
6、在一个数组元素值递增的数组中插入一个元素值,要求按原来的规律将它插入数组中合适的位置(使用折半查找)
public static int arrayIndexOf(int[] array,int key) {
int min,max,mid;
min = 0;
max = array.length – 1;
while(min <= max) {
mid = (min + max) >> 1;
if (key > array[mid]) {
min = mid + 1;
} else if (key < array[mid]) {
max = mid – 1;
} else {
return mid;
}
}
return min;
}

退出移动版