亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java:對象引用和重新分配

Java:對象引用和重新分配

守候你守候我 2021-04-15 18:13:05
從不耐煩的Core Java中:變量只能保存對對象的引用...我像這樣嘗試,它似乎可以工作:public class Person{    public String m_name;    public int m_age;    Person (final String name, final int age){        m_name = name;        m_age = age;    }    public static void main(String[] args){        Person a = new Person("John", 45);        Person b = a;        System.out.printf("Person a is %s, aged %d\n", a.m_name, a.m_age);        System.out.printf("Person b is %s, aged %d\n", b.m_name, b.m_age);        a.m_name = "Bob";        System.out.printf("Person a is now %s, aged %d\n", a.m_name, a.m_age);        System.out.printf("Person b is now %s, aged %d\n", b.m_name, b.m_age);    }}/*Output:Person a is John, aged 45Person b is John, aged 45Person a is now Bob, aged 45Person b is now Bob, aged 45*/但是,它似乎不僅僅適用于String對象或基本類型(盡管,從類實例的意義上講,后者并不是對象):String aS = "John";String bS = aS;aS = "Bob";System.out.println(aS + '\n' + bS);/*Output:BobJohn*/int a = 10;int b = a; a = 5; System.out.printf("a = %d, b = %d", a, b);/*Output:a = 5, b = 10*/我想知道為什么要這樣二分法嗎?謝謝ps:Person類的屬性是公共的,以避免此簡單示例的更改器,訪問器
查看完整描述

1 回答

?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

您不是在重新分配“ a”

a.m_name = "Bob";

嘗試這樣做

a = new Person("Bob", 20);

那么您將獲得與您列出的字符串示例相似的行為。


查看完整回答
反對 回復 2021-04-28
  • 1 回答
  • 0 關注
  • 275 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號