作者zerof (猫橘毛发呆雕像)
看板java
标题Re: [问题] Object 的基本问题
时间Sun Jul 17 23:07:07 2011
※ 引述《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
1F:推 longrider:感谢您花时间为我释疑. 07/18 10:38