1.A.在类中的位置不同

成员变量:在类中方法外

局部变量:在方法定义中或者方法声明上

B.在内存中的位置不同

成员变量:在堆内存(成员变量属于对象,对象进堆内存)

局部变量:在栈内存(局部变量属于方法,方法进栈内存)

C.生命周期不同

成员变量:随着对象的创建而存在,随着对象的消失而消失

局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

D.初始化值不同

成员变量:有默认初试化值

局部变量:没有默认初始化值,使用前必须定义,赋值,然后才能使用。

2.匿名对象就是没有名字的对象

应用场景:a.调用方法,仅仅只调用一次的时候。

b.匿名对象可以作为实际参数传递

3.封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式

人类赋值年龄的问题

用private关键字修饰成员变量

private是一个权限修饰符,可以修饰成员变量和成员方法,被其修饰的成员只能在本类中被访问。

举例:A.把成员变量用private修饰

B.提供对应的getXxx()和setXxx()方法

4.this关键字

(1)调用本类中的属性,也就是类中的成员变量

(2)调用本类中的其他方法

(3)调用本类中的其他构造方法,调用时要放在构造方法的首行

5.可以通过在被访问的类中定义访问权限为public的函数,用来返回数据成员的引用。day08作业-LMLPHPday08作业-LMLPHPday08作业-LMLPHP

class Demo1_Student {
public static void main(String[] args) {
Student s = new Student();
s.name = "小明";
s.age = 22;
s.speak();
}
} class Student {
String name;
int age;
public void speak(){
System.out.println(name + " " + age);
}
}
class Phone {
public static void main(String[] args) {
MobilePhone m = new MobilePhone();//创建对象 m.brand = "苹果"; //调用品牌属性并赋值
m.price = 8888; //调用价格属性并赋值
System.out.println(m.brand + " " + m.price); m.call();
m.sendMessage();
m.playGame();
}
} class MobilePhone {
String brand;
int price;
public void call(){
System.out.println("打电话");
}
public void sendMessage(){
System.out.println("发信息");
}
public void playGame(){
System.out.println("玩游戏");
}
}
class Demo2_Car {
public static void main(String[] args) {
for (int i = 0;i < 10;i++ ) {
method(new Car());
}
}
public static void method(Car cc){
cc.color = "red";
cc.num = 4;
cc.run();
}
} class Car {
String color;
int num;
public void run(){
System.out.println(color + " " + num);
}
}
05-11 15:16