day07作业-韩明琰
一.面向对象
1:局部变量和成员变量的区别?
一,在类中的位置不同:成员变量在类中方法外。局部变量在方法定义中或方法声明上
二,在内存中的位置不同:成员变量在堆内存(成员变量属于对象,对象进堆内存)。局部变量在栈内存(局部变量属于方法,方法进栈内存)
三,生命周期不同:成员变量随着对象的创建而存在,随着对象的消失而消失。局部变量随着方法的调用而存在,随着方法的弹栈而消失
四,初始化值不同:成员变量有默认初始化值。局部变量没有默认初始化值,使用前必须定义,赋值,才能使用
2:匿名对象是什么?应用场景是什么?
匿名对象就是没有名字的对象
应用场景是:只调用一次方法的时候
3:封装是什么?java中封装的体现有哪些?请举例说明。
封装是指隐藏对象的属性和实现细节,仅对外提供访问方式
例子:在不同文件中的类不能互相访问,每个文件只写一个类,把类封装起来
成员变量和成员方法用private关键字修饰,被修饰的成员只能在本类中被直接访问,外界只能通过方法访问,把成员方法和成员变量封装起来,提高了安全性
4:this关键字是什么?this关键字的应用场景?
this的作用是在类中通过this访问自身的成员变量和成员方法,成员变量与局部变量重名时,可用this区分
5:如何使用一个类的成员
创建对象并使用:格式 类名 对象名 = new 类名();
使用成员变量: 类名.变量名
使用成员方法:类名.方法名(...)
========================================================
========================================================
二. 内存图
画图操作:
1.一个对象的内存图
2.两个对象的内存图
3.三个引用两个对象的内存图
========================================================
========================================================
三. 自定义类
Student 类
class Student {
String name;
int age;
String gender;
public void study() {
System.out.println("学生在学习");
}
public void sleep() {
System.out.println("学生在睡觉");
}
}
Phone 类
class Phone {
String brand;
int price;
public void call() {
System.out.println("打电话");
}
public void sendMessage() {
System.out.println("发信息");
}
public void playGame() {
System.out.println("玩游戏");
}
}
Car 类
class Car {
String color;
int num;
public void run(){
System.out.println(color+"的"+num+"个轮子的车再跑");
}
}