7.11 作业 韩宗轩
一.面向对象
1:局部变量和成员变量的区别?\
A:在类中的位置不同
* 成员变量:在类中方法外
* 局部变量:在方法定义中或者方法声明上
* B:在内存中的位置不同
* 成员变量:在堆内存(成员变量属于对象,对象进堆内存)
* 局部变量:在栈内存(局部变量属于方法,方法进栈内存)
* C:生命周期不同
* 成员变量:随着对象的创建而存在,随着对象的消失而消失
* 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
* D:初始化值不同
* 成员变量:有默认初始化值
* 局部变量:没有默认初始化值;使用前必须定义,赋值,然后才能使用。
2:匿名对象是什么?应用场景是什么?
定义:没有名字的对象.
应用场景: 1. 调用方法,仅仅只调用一次的时候。因为调用完之后匿名对象 就变成垃圾了.
2. 匿名对象可以作为实际参数传递
3:封装是什么?java中封装的体现有哪些?请举例说明。
定义: 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
4:this关键字是什么?this关键字的应用场景?
关键字特点:代表当前对象的引用
应用场景: 用来区分成员变量和局部变量重名
5:如何使用一个类的成员
先创建一个对象
类名 对象名 = new 类名();
对象名.变量名
========================================================
========================================================
二. 内存图
画图操作:
- 一个对象的内存图
- 两个对象的内存图
3.三个引用两个对象的内存图
========================================================
========================================================
三. 自定义类
Student 类
class Demo1 {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
class Student {
String name;
int age;
String gender;
public void study(){
System.out.println("学生学习");
}
public void sleep(){
System.out.println("学生睡觉");
}
}
Phone 类
class Demo2 {
public static void main(String[] args) {
Phone p = new Phone();
p.brand = "苹果";
p.price = 9999;
System.out.println(p.brand+"手机"+"只要"+p.price);
p.call();
p.sendMessage();
p.playGame();
}
}
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 Car2 {
public static void main(String[] args) {
Car c1 = new Car();
c1.color = "red";
c1.num = 8;
c1.run();
Car c2 = new Car();
c2.color = "blue";
c2.num = 6;
c2.run();
Car c3 = c2;
c3.run();
}
}
class Car {
String color;
int num;
public void run(){
System.out.println(color + "---"+ num);
}
}