一.面向对象
1:局部变量和成员变量的区别?
(1) 在类中的的位置不同
成员变量:在类中方法外 局部变量在方法定义中或在方法声明上
(2) 在内存中的位置不同
成员变量在堆内存,局部变量在栈内存。
(3) 生命周期不同
成员变量随对象的创建而存在,随对象的消失而消失。
局部变量随方法的调用而存在,随方法的结束而消失。
(4) 初始化值不同
成员变量有默认的初始化值。
局部变量没有默认的初始化值,使用前必须定义,赋值后才可用。
2:匿名对象是什么?应用场景是什么?
没有名字的对象。
应用场景:(1)调用方法,仅仅只调用一次的时候。
(2)匿名对象可以作为实际参数传递。
3:封装是什么?java中封装的体现有哪些?请举例说明。
封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。对类中属性封装,通过getXxx();和setXxx();调用。
4:this关键字是什么?this关键字的应用场景?
this强调调用的是本类中的方法,也可以表示当前对象,也可以表示类中的属性。
5:如何使用一个类的成员
对象名.变量名
二、内存图
一个对象的内存图
两个对象的内存图
三个引用两个对象的内存图:
三. 自定义类
Student 类
class Demo9
{
public static void main(String[] args)
{
Student stu = new Student();
stu.name = "张三";
stu.setAge(30);
stu.tell();
}
}
class Student{
public String name;
private int age;
public void tell(){
System.out.println("姓名:"+name+" 年龄:"+getAge());
}
public void setAge(int a){
age = a;
}
public int getAge(){
return age;
}
}
Phone 类,Car类类似。