上面已經(jīng)說過了創(chuàng)建對象的方法茸炒,但為了規(guī)整性并沒有進(jìn)行過多的描述芹敌。
創(chuàng)建對象涡扼,對象空間成員變量的默認(rèn)值
?SuperHero sh = new SuperHero();//上面提到的創(chuàng)建對象
?
?在創(chuàng)建對象的時候苛吱,沒有對對象里面的成員變量進(jìn)行賦初值操作吹泡,所以里面所有的
?成員變量都是 0 值
??常用數(shù)據(jù)類型的對應(yīng) 0 值
??int? 0
??byte 0
??long 0
??short 0
??
??double 0.0
??float 0.0f
??
??char '\0'
??
??boolean false
??
??String null? //引用數(shù)據(jù)類型的初值都是null 編號為0的內(nèi)存
成員變量與局部變量的區(qū)別:
定義位置的區(qū)別:
???1. 成員變量是定義在類里面的
???2. 局部變量是定義在方法里面的普通變量
??
??作用上的區(qū)別:
???1. 成員變量是用來描述一類事物的公共屬性?
???2. 局部變量是給函數(shù)提供一個用來保存數(shù)據(jù)的變量內(nèi)存空間骤星,只是當(dāng)前函數(shù)或者代
???碼塊里面可以使用
??
??初始值的區(qū)別:
???1. 成員變量的初始值是在創(chuàng)建對象的時候才有的,如果創(chuàng)建時沒有賦初值爆哑,那么所
???用的成員變量都是0值
???2. 局部變量在創(chuàng)建的時候洞难,是沒有確定值,只能通過賦值操作給予一個確定的數(shù)據(jù)
???揭朝,在Java中不能使用未賦值局部變量
??
??[生存周期]?
???在代碼中 一個變量或者一個對象從創(chuàng)建開始队贱,到銷毀結(jié)束,這就是他的生存周期
??
??生存周期的區(qū)別:
???1. 成員變量的生存周期是隨對象創(chuàng)建而生潭袱,隨著對象的銷毀而不復(fù)存在【內(nèi)存的堆
???區(qū)】
???2. 局部變量是在聲明變量而生柱嫌,在函數(shù)結(jié)束或者代碼塊結(jié)束,銷毀【內(nèi)存的棧區(qū)】
下面這段代碼并不是對局部變量和成員變量的區(qū)分屯换,但是可以在加深一下成員方法和成員變量的理解编丘。
class Person {
?String name; //成員變量
?//成員方法
?public void eat() {
??int age = 12; //局部變量
??for (int i = 0; i < age; i++) {
???//在類的內(nèi)部可以直接使用成員變量
???System.out.println(name? + "吃窩窩頭~~~");
??}
?}?
}
public class Demo1 {
?public static void main(String[] args) {
??Person p1 = new Person();
??p1.name = "隔壁小王";
??p1.eat();
?}
}