上面已经说过了创建对象的方法,但为了规整性并没有进行过多的描述。
创建对象,对象空间成员变量的默认值
SuperHero sh = new SuperHero();//上面提到的创建对象
在创建对象的时候,没有对对象里面的成员变量进行赋初值操作,所以里面所有的
成员变量都是 0 值
常用数据类型的对应 0 值
int 0
byte 0
long 0
short 0
double 0.0
float 0.0f
char '\0'
boolean false
String null //引用数据类型的初值都是null 编号为0的内存
成员变量与局部变量的区别:
定义位置的区别:
1. 成员变量是定义在类里面的
2. 局部变量是定义在方法里面的普通变量
作用上的区别:
1. 成员变量是用来描述一类事物的公共属性
2. 局部变量是给函数提供一个用来保存数据的变量内存空间,只是当前函数或者代
码块里面可以使用
初始值的区别:
1. 成员变量的初始值是在创建对象的时候才有的,如果创建时没有赋初值,那么所
用的成员变量都是0值
2. 局部变量在创建的时候,是没有确定值,只能通过赋值操作给予一个确定的数据
,在Java中不能使用未赋值局部变量
[生存周期]
在代码中 一个变量或者一个对象从创建开始,到销毁结束,这就是他的生存周期
生存周期的区别:
1. 成员变量的生存周期是随对象创建而生,随着对象的销毁而不复存在【内存的堆
区】
2. 局部变量是在声明变量而生,在函数结束或者代码块结束,销毁【内存的栈区】
下面这段代码并不是对局部变量和成员变量的区分,但是可以在加深一下成员方法和成员变量的理解。
class Person {
String name; //成员变量
//成员方法
public void eat() {
int age = 12; //局部变量
for (int i = 0; i < age; i++) {
//在类的内部可以直接使用成员变量
System.out.println(name + "吃窝窝头~~~");
}
}
}
public class Demo1 {
public static void main(String[] args) {
Person p1 = new Person();
p1.name = "隔壁小王";
p1.eat();
}
}