Re: [問題] Object 的基本問題

看板java作者 (貓橘毛發呆雕像)時間14年前 (2011/07/17 23:07), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《longrider (龍騎士2)》之銘言: : 大家好, 有一些基本的 Object 問題請教大家 : 希望大家別見笑 : 我在看 Java vs C# 的比較時 : http://www.harding.edu/fmccown/java_csharp_comparison.html : 看到幾段 Code : ---------Java : SuperHero hero = new SuperHero(); : hero.setName("SpamMan"); : hero.setPowerLevel(3); : hero.Defend("Laura Jones"); : SuperHero.Rest(); // Calling static method : SuperHero hero2 = hero; // Both refer to same object : hero2.setName("WormWoman"); : System.out.println(hero.getName()); // Prints WormWoman : ---------C# : SuperHero hero = new SuperHero(); : hero.Name = "SpamMan"; : hero.PowerLevel = 3; : hero.Defend("Laura Jones"); : SuperHero.Rest(); // Calling static method : SuperHero hero2 = hero; // Both refer to same object : hero2.Name = "WormWoman"; : Console.WriteLine(hero.Name); // Prints WormWoman : --------- : 這個差異, 是因為 Java 不允許外部對 Object 裡面變數的讀寫嗎? : 所以需要另外額外的 setName() 與 getName() 來負責讀寫動作. 剛發現不能用推文快速回文... 只好發一篇來回了 囧" 試著補完的程式碼: http://pastie.org/2227022 原po的問題應該是java是否可以像 line63 的方式來讀取obj內的變數, 答案是可以的。 至於line64為什麼沒有改成 hero.mPowerLevel = 3; , 是因為obj內的變數為private,不允許外部讀寫。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.218.48.154

07/18 10:38, , 1F
感謝您花時間為我釋疑.
07/18 10:38, 1F
文章代碼(AID): #1E8lgVzI (java)
文章代碼(AID): #1E8lgVzI (java)