对象 类
1、什么是对象?什么是类?类和对象有什么关系?
答:
对象:对象是存在的具体实体,且有明确的定义的特征和行为。
类: 类是具有相同属性和行为的一组对象的集合。
类和对象的关系: 类是对象的抽象,对象是类的实例。
2、属性如何创建?属性有什么特点?属性如何访问?
属性如何创建:
属性有什么特点:对象之间属性彼此独立,一个对象属性的变化不会影响其他属性变化,由于属性是属于一个对象的组成部分,所以属性也叫成员变量。
属性如何访问: 属性只能通过对象.的方式访问。
3、静态变量如何创建?静态变量有什么特点?静态变如何访问?
静态变量如何创建:
静态变量有什么特点:静态变量创建在一个对象之外,是所有对象共享的变量,也就是说静态变量发生变化会影响所有的对象。
静态变量如何访问 静态变量可以通过对象.的方式访问,也可以通过类名.的方式访问。
4、请创建T141部学生(StudentT141)这个类,要求有姓名、年龄、导师、成绩、班级荣誉等变量。分析这些变量哪些是静态变量,哪些是属性(成员变量)书写这个类。
public class StudentT141 {
public String name; //成员变量 每一个同学的姓名都是不一样的
public int age; //成员变量 每一个同学都有自己的年龄
public String tutor;//静态变量 所有同学共有的,导师一变所有同学都会被影响
public int score; //成员变量 每一个同学都有自己的成绩,自己的成绩发生变化不会影响其他同学
public String honor;//静态变量 班级荣誉是整个班级共有的
}
5、什么包?使用包有什么好处?
包就是文件夹。
利用包可以组织相关的类,同时可以做到信息的隐藏。
6、堆、栈、数据段、代码段各自存放什么数据?有什么特点?
堆: new(对象)
栈: 局部变量
数据段:类变量、常亮
代码段:方法的定义
7、垃圾回收回收的是什么?
回收没有被变量所指向的对象。
8、什么是null?如果对null值进行方法和属性的调用会发生什么情况?
什么是null: 表示在变量中没有存放任何对象的地址
调用会发生的情况: 当对值为null的变量进行方法调用和属性调用时,会抛出控制针异常。
9、根据代码画出内存图,并说出结果
public class Student {
public int code;
}
public class Test {
public static void main(String[] args) {
int x = 4;
Student s1 = new Student();
Student s2 = new Student();
s1.code = 8;
s2.code = 3;
test(s1,s2,x);
System.out.println(s1.code+" "+s2.code+" "+x);
}
public static void test(Student s2,Student s1,int x){
s1.code = 2;
s2.code = 5;
s2 = s1;
s1.code = s2.code;
s1 = new Student();
s1.code = 10;
s2.code = 7;
x = 15;
}
}

10、静态方法和成员方法应该如何调用?
静态方法:可以通过类名.和对象.的方式调用。
成员方法:只能通过对象.的方式调用。
11、什么是重载?
方法重载发生在同一个类中,方法名相同,参数列表不同,和返回类型无关。根据调用方法的参数,决定执行那个重载方法。
12、什么是构造方法?构造方法的作用是什么?
构造方法就是方法名和类名相同,没有返回类型。利用构造方法可以产生类的对象。
作用:
1.为对象分配空间
2.初始化成员变量
3.返回该对象的引用
13、说说下面的方法哪些重载了构造方法?
public class Test{
public Test(int x){}
}
a、public Test(int y){}
b、public Test(String y){}
c、public void Test(String x){}
d、public int Test(int y,String x){}
e、public Test(int y,String x){}
f、public Test(String x,int y){}
b,e,f重载了构造方法
14、下列哪一行进行了垃圾回收
Object o1 = new Object(); 进行了垃圾回收
Object o2 = new Object();
Object[] array = new Object[2];
o1 = o2;
o2 = array[0];
Array[0] = new Object();
o1 = array[0];
15、说出下列代码执行结果
a、public class Test{
public static void main(String[] args){
int j;
System.out.println(j);
}
}
j没有赋值,无法执行。
b、public class Test{
static int j;
public static void main(String args){
System.out.println(j);
}
}
main 方法定义错误,(String[] args)在类Test中定义j的同时也符了初始值0;
c、public class Test{
int j;
public int getNum(){
return this.j;
}
public static void main(String[] args){
System.out.println(getNum());
}
}
d、public class Test{
public String x;
public static void main(String[] args){
Test t = new Test();
String y = "";
System.out.println(t.x.equals(y));
}
}会抛出空指针异常

浙公网安备 33010602011771号