1.类里面可以有什么?(5分)
变量,代码段,方法,内部类,this,super,常量
2.extends是什么?目的是什么?(5分)
继承关键字,代码的重用
3.谈谈你对final的理解.(5分)
Final是最终的,不可更改的,final修饰的类不能被继承,final修饰的成员方法不能被覆写,final修饰的静态变量是常量,成员变量和局部变量不能二次赋值 注意:继承指的是成员属性,只有成员属性可以被继承,堆内存继承
4.abstract和interface的区别?(5分)
Abstract 是修饰符,abstract修饰的类是抽象类,修饰的方法是抽象方法,抽象类中不能创建实例化对象,但是有构造方法,用于子类创建对象调用,并且抽象类中可以没有抽象方法,抽象方法一定在抽象类中. 一个非抽象类继承一个抽象类需要实现所有的抽象方法,一个抽象类继承一个抽象类需要继承0~N个抽象方法.抽象类只能被继承
interface是实现接口关键字,是定义接口的关键字,用interface声明的类是接口,接口中只有抽象方法和常量并且public static 和abstract可以省略,默认就是 ,接口中没有构造方法,也不能被创建实例化对象 注意:类和类之间单继承,接口之间多继承,类和接口之间多实现
5.Student s = new Student(); 这一句话在内存中会有怎么的操作?(5分)
1.加载student类到静态代码段中,然后new在堆内存开辟空间,调用构造的方法,对堆内存对象初始化,构造方法执行完弹栈,把堆内存内存地址返回给s
6. Override和Overload的区别?(5分)
Override是方法覆写:有继承关系的体系中,方法名,参数列表,返回值必须相同,不能比原有的方法有更低的访问权限,不能比原有的方法有更宽泛的异常
Overload方法的重载:方法名相同,参数列表不同(个数不同和类型不同)
7.java面向对象的特性?(5分)
封装,继承,多态,抽象
8.javaJVM特性?(5分)
多线程,跨平台,垃圾自动回收,面向对象
9.什么是多态?多态发生在什么地方?什么时候可以发生多态?(5分)
父类引用指向子类对象,发生在有变量的地方,发生在赋值的时候
10.类与类之间的关系是什么?(5分)
继承
实现
依赖
关联
聚合
组合
11.什么是单例模式?请用代码表示出来.(10分)
目的:让一个类只能被实例化一次,
1.构造方法私有化,无法让外部通过构造方法创建对象,
2.创建一个公共的,静态的,创建当前类对象的方法
3.创建一个静态变量用来保存实例化之后的对象引用
12. 给出下面代码段, 哪行将引起一个编译时错误?(10分)
- public class Test {
- int n = 0;
- int m = 0;
- public Test(int a) {m=a; }
- public static void main(String arg[]) {
-
Test t1,t2;
-
int j,k;
-
j=3; k=5;
-
t1=new Test();
//构造方法有参数,所以默认的无参构造就没有了
10) t2=new Test(k);
11) }
12) }
A. 行1 B. 行4 C. 行6 D. 行9
13.下面程序中类ClassDemo中定义了一个静态变量sum,分析程序段的输出结果。(10分)
class ClassDemo {
public static int sum=1;
public ClassDemo() {
sum = sum + 5;
}
}
public class ClassDemoTest{
public static void main(String args[]) {
ClassDemo demo1=new ClassDemo();
ClassDemo demo2=new ClassDemo();
System.out.println(demo1.sum);
System.out.println(demo2.sum);
}
}
//静态变量所有对象共有的属性和值,所以每次调用都增加一次,所以输出的都一样
A. 0 B. 6 11 C. 11 11 D. 2
- 阅读以下代码,并指出哪里有错误.(10分)
public class A{
public static void main (String [] args){
-
A a1 = new A(10);
-
A a2 = new A(); }
//不是构造方法
//所以构造方法还是无参的
3) public void A(int i){
4) System.out.println( “我是构造方法”+i );
}
}
A. 1 B. 2 C. 3 D. 4
-
阅读以下代码,并说出输出顺序为多少.(10分)
public class A{
int i;
public static void main (String [] args){
A a = new A();
a.m1();
//返回的时候a还是默认值0
a.m1(a);
//
System.out.println( a.i );
}
public void m1(){
A a = new A();
a.i = 1;
a.i = 100;
//1100=100System.out.println( a.i ); } public void m1(A a ){ a.i++; System.out.println( a.i+1 ); }
}
16 下面是一个类的定义,请将其补充完整:
class Student__ {
String name;
int age;
Student(__String name, int a){
this.name = name;
age = a;
}
}