作业 day08
一.面向对象
1:局部变量和成员变量的区别?
1.局部变量在方法上和方法中,成员变量是在类中,方法外声明的;
2.局部变量是随方法的调用创建进入栈内存中;成员变量随对象的创建是加载在堆内存;
3.局部变量随方法的调用而存在,调用结束而消失;成员变量则是在创建对象时就调用,随对象消失而消失;
4.成员变量有默认初始化值;局部变量没有,必须定义赋值才能使用;
2:匿名对象是什么?应用场景是什么?
没有名字的对象;仅仅调用一次的时候;
3:封装是什么?java中封装的体现有哪些?请举例说明。
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式;
如使用private 进行封装;
class Student {
private int age ;
private String name;
public void setAge(int age) {
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
public void run() {
System.out.println("好好捣蛋");
}
}如上,在student类外无法直接调用成员变量age 和name
但是提供了getXxx 和setXxx来对其进行访问和设置;
4:this关键字是什么?this关键字的应用场景?
用于局部变量与成员变量重名的时候;
用this.变量名可以表示成员变量
5:如何使用一个类的成员
先创建对象
类名 对象名 = new 类名();
如 Phone p1 = new Phone(); //创建一个对象为p1
使用成员方法
对象名.方法名();
p1.function();
使用成员变量
对象名.变量;
p1.brand;
========================================================
========================================================
二. 内存图
画图操作:
1.一个对象的内存图
2.两个对象的内存图
3.三个引用两个对象的内存图
========================================================
========================================================
三. 自定义类
Student 类
Phone 类
Car 类
class Test1 {
public static void main(String[] args) {
Student s1 = new Student();
s1.setAge(18);
s1.setName("raruto");
System.out.println(s1.getName() + "..." + s1.getAge());
s1.run();
Car c1 = new Car();
c1.brand = "碰碰车";
c1.carNum = 666666;
System.out.println(c1.brand + "--" + c1.carNum);
c1.run();
Phone p1 = new Phone();
p1.setBrand("山寨iphone");
p1.setPrice(998);
System.out.println(p1.getBrand() + "___" + p1.getPrice());
p1.function("死机");
}
}
//Student 类Phone 类Car 类
class Student {
private int age ;
private String name;
public void setAge(int age) {
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
public void run() {
System.out.println("好好捣蛋");
}
}
class Car {
String brand;
int carNum;
public void run() {
System.out.println("翻车了翻车了");
}
}
class Phone {
String brand;
int price;
public void setBrand(String brand) {
this.brand = brand;
}
public String getBrand() {
return brand;
}
public void setPrice(int price) {
this.price = price;
}
public int getPrice() {
return price;
}
public void function(String func) {
System.out.println(func);
}
}