Java面向?qū)ο?引用傳遞

一威彰、引用傳遞

【案例-1】

引用傳遞-1.png
代碼
class Ref1{
    int temp = 10;
}
public class Demo08 {
    public static void main(String[] args) {
        Ref1 r1 = new Ref1();
        r1.temp = 20;
        System.out.println(r1.temp);
        tell(r1);
        System.out.println(r1.temp);
    }
    public static void tell(Ref1 r2) {
        r2.temp = 30;
    }
}
結(jié)果:
20
30

【案例-2】

引用傳遞-2.png
代碼
public class Demo09 {
    public static void main(String[] args) {
        String str1 = "hello";
        System.out.println(str1);
        tell(str1);
        System.out.println(str1);
    }
    public static void tell(String str2) {
        str2 = "jike";
    }
    
}
結(jié)果:
hello
hello

【案例-3】

引用傳遞-3.png
代碼
class Ref2{
    String temp = "hello";
}
public class Demo10 {
    public static void main(String[] args) {
        Ref2 r1 = new Ref2();
        r1.temp = "jike";
        System.out.println(r1.temp);
        tell(r1);
        System.out.println(r1.temp);
    }
    public static void tell(Ref2 r2) {
        r2.temp = "xueyuan";
    }
}
結(jié)果:
jike
xueyuan

二、this關(guān)鍵字

使用
  • 表示類中的屬性和調(diào)用方法掘宪。
  • 調(diào)用本類中的構(gòu)造方法蛾扇。
  • 表示當(dāng)前對象。
代碼一
class People{
    private String name;
    private int age;
    
    public People(String name,int age){
        this();//通過this調(diào)用構(gòu)造方法魏滚,必須方法構(gòu)造方法的首行
    
        //通過this調(diào)用本類中的屬性
        this.name = name;
        this.age = age;
    }
    
    //無論什么情況下都要執(zhí)行此方法
    //需要在其他構(gòu)造方法中調(diào)用此方法
    public People(){
        System.out.println("無參數(shù)構(gòu)造方法");
    }
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void tell() {
        //通過this調(diào)用當(dāng)前類中的方法
        System.out.println("姓名:"+this.getName()+"  "+"年齡:"+this.getAge());
    }
}
public class Demo11 {
    public static void main(String[] args) {
        People p = new People("張三", 30);
        p.tell();
    }
}
結(jié)果:
無參數(shù)構(gòu)造方法
姓名:張三  年齡:30

代碼二

package cn.sec.ch02;
class People1{
    public void tell() {
        System.out.println(this);
    }
}
public class Demo12 {
    public static void main(String[] args) {
        People1 p1 = new People1();
        System.out.println(p1);
        p1.tell();
        //通過People1實例化的對象和this得到的對象是一個對象
        //通過this可以表示當(dāng)前對象
    }
}
結(jié)果:
cn.sec.ch02.People1@7852e922
cn.sec.ch02.People1@7852e922

三镀首、static關(guān)鍵字

  • 使用static聲明屬性:static聲明全局屬性
  • 使用static聲明方法:直接通過類名調(diào)用
  • 注意點:使用static方法的時候,只能訪問static聲明的屬性和方法鼠次,而非static聲明的屬性和方法是不能訪問的更哄。
示例一
代碼
class PersonA{
    String name;
    private static String country = "北京"; //聲明成靜態(tài)的,是大家公有的屬性
    public PersonA(String name){
        this.name = name;
    }
    
    public static String getCountry() {
        return country;
    }
    public static void setCountry(String country) {
        PersonA.country = country;
    }

    public void tell() {
        System.out.println("姓名:"+name+"  出生地:"+country);
    }
}
public class Demo13 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
         PersonA.setCountry("上海");//靜態(tài)的方法通過類名調(diào)用 腥寇,可以在實例化之前調(diào)用
         PersonA pA1 = new PersonA("張三");
//       PersonA.country = "上海"; //靜態(tài)的屬性通過類名調(diào)用  
         pA1.tell();
         PersonA pA2 = new PersonA("李四");
//       pA2.country = "上海";
         pA2.tell();
         PersonA pA3 = new PersonA("王五");
//       pA3.country = "上海";
         pA3.tell(); 
    }
}
結(jié)果:
姓名:張三  出生地:上海
姓名:李四  出生地:上海
姓名:王五  出生地:上海
示例二
代碼
public class Demo14 {
    
    private static int i = 10;
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //使用static方法的時候成翩,只能訪問static聲明的屬性和方法,而非static聲明的屬性和方法是不能訪問的花颗。
        System.out.println(i);
        tell();
    }
    public static void tell() {
        
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捕传,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子扩劝,更是在濱河造成了極大的恐慌庸论,老刑警劉巖职辅,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異聂示,居然都是意外死亡域携,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進(jìn)店門鱼喉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秀鞭,“玉大人,你說我怎么就攤上這事扛禽》姹撸” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵编曼,是天一觀的道長豆巨。 經(jīng)常有香客問我,道長掐场,這世上最難降的妖魔是什么往扔? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮熊户,結(jié)果婚禮上萍膛,老公的妹妹穿的比我還像新娘。我一直安慰自己嚷堡,他們只是感情好蝗罗,可當(dāng)我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蝌戒,像睡著了一般绿饵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瓶颠,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天拟赊,我揣著相機與錄音,去河邊找鬼粹淋。 笑死吸祟,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的桃移。 我是一名探鬼主播屋匕,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼借杰!你這毒婦竟也來了过吻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎纤虽,沒想到半個月后乳绕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡逼纸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年洋措,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杰刽。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡菠发,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出贺嫂,到底是詐尸還是另有隱情滓鸠,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布第喳,位于F島的核電站哥力,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏墩弯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一寞射、第九天 我趴在偏房一處隱蔽的房頂上張望渔工。 院中可真熱鬧,春花似錦桥温、人聲如沸引矩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旺韭。三九已至,卻和暖如春掏觉,著一層夾襖步出監(jiān)牢的瞬間区端,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工澳腹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留织盼,地道東北人。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓酱塔,卻偏偏與公主長得像沥邻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子羊娃,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容