定义类其实就是在定义类中的成员
成员: 成员变量<-->属性, 成员函数<-->行为
成员变量和局部变量的区别:
1. 成员变量定义在类中,整个类中都可以访问
局部变量定义在函数、语句、局部代码块中,只在所属的区域有效
2. 成员变量存在于堆内存的对象中。
局部变量存在于栈内存的方法中。
3.(存活时间不同)
成员变量随着对象的创建而存在,随着对象的消失而消失。
局部变量随着所属区域的执行而存在,随着所属区域的结束而释放。
4.
成员变量都有默认的初始化值。
局部变量没有默认的初始化值。
class Car{
int num;
String color;
void run(){
System.err.println(num+"..."+color);
}
}
public class CarDemo {
public static void main(String[] args) {
//通过new关键字创建car实例
Car c = new Car(); // c就是一个类类型的引用变量,指向了该类的对象。
c.num=4;
c.color="red";
c.run();// 要使用对象中的内容可以通过 对象.成员 的形式来完成调用。
}
成员变量和局部变量的同名&显示:
class Car{
int num;
String color;
void run(){
Int num=10;
System.err.println(num+"..."+color);
}
}
public class CarDemo {
public static void main(String[] args) {
Car c = new Car();
c.num=4;
c.color="red";
c.run(); }
结果:10...red
Int num=10;局部变量
System.err.println(num+"..."+color);输出时 所处栈中存在 num
在栈中找不到 到堆中找
堆中没有 报错!!
匿名对象:没有名字的对象
New Car()://匿名对象,其实就是定义对象的简写格式。
Car c = new Car();
C.run();
New Car().run;
1.
当对象对方法仅进行一次调用的时候,就可以简化成匿名对象。
New Car().num= 5;//匿名对象调用一次过后就关闭
New Car().color=”green”;
New Car().run;
2.
匿名对象可以作为实际参数进行传递。
//Car c1 = new Car();
//Show (c1);
//==
Show(new Car());