Re: [問題] Object 的基本問題
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):