看板 java 關於我們 聯絡資訊
我直接只留最後推文的部份 ※ 引述《a60301 (mingtsay〃小喵)》之銘言: : 我看很多 Java 程式碼都是寫成: : public class Foo { : private int _bar; : : public int getBar() { : return _bar; : } : : public void setBar(int bar) { : if (bar >= 0) _bar = bar; : } : : public Foo(int bar) { : _bar = bar; : } : public Foo() { : this(0); : } : } : : 所以使用起來會是像這樣的用法: : : Foo foo = new Foo(); : foo.setBar(3); : System.out.println(foo.getBar()); // 3 : foo.setBar(-8); // invalid bar : System.out.println(foo.getBar()); // 3 : : 我只是期待可以這樣做同時達成Getter/Setter概念: : : foo.bar = 3; // _bar = 3 : foo.bar = -8; // _bar won't change : : 不過看起來只有VB, JS, PHP才有這種特殊用法, : 至於C/C++, Java我還是乖乖開getFoo/setFoo的function好了… : → abola921:那不是把bar宣告成public 就好不是嗎... 07/18 13:55 我覺得這個問題可以從樓上的推文作結,也可以從樓上的推文作起始 XD 先說 abola921 推文的問題 基本上那個 VB 的語法還是會實際去跑 setter 所以在上頭的例子當中,原 po 期望在 foo.bar = -8; 之後,foo.bar 的值還是 3。 所以,不是把 Foo 的 bar 宣告成 public 就可以解決的事情 畢竟 Java 的 assign 就是 assign。 我想,一切的癥結點也是在這句上 Java 的 assign 就是 assign 我先說我不知道 VB / PHP 會怎麼處理這件事情 JavaScript... 其實我不知道 JavaScript 有這功能 [死] (我也算是寫了快一年的 JS 阿 [被毆飛]) 請試想下面這個 case public class Foo { public int open; private int close; //假設 open 沒有 getter/setter //省略 close 的 getter/setter } 那麼,按照原 po 的想法 當我看到這樣的 code 的時候,我要從何 trace 起? Foo foo = new Foo(); foo.open = 1; foo.close = 1; 更不用說,如果 open 其實也有 getter/setter 的話...... 所以,我其實看不出來原 po 希望的那個語法... 也許這個 syntax sugar 有人喜歡這味 但是跟 Java 一貫講究囉唆以求(盡量)不會有模糊不清的部份 我覺得是相違背的 最後,我知道的 EL 是會去呼叫 setter 算是最接近原 po 要得東西 只是 EL 理論上也不是直接用在 Java code 當中 當然,強調一下 這只是我個人的想法,也許根本就是我搞錯什麼了 Orz -- 錢鍾書: 說出來的話 http://www.psmonkey.org 比不上不說出來的話 Java 版 cookcomic 版 只影射著說不出來的話 and more...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.25.5.37
cuteclare:orz 看的懂原po在問啥了 07/18 17:18
a60301:推,忘了考慮到Java的Coding Style問題,果然每個程式碼的 07/18 18:29
a60301:屬性(?)都不太一樣,有的是御姐有的是蘿莉甚至是正太(?) 07/18 18:30
gmoz:像是編碼會遇到幼女控 07/18 18:39
LPH66:幼女控XDDDDDD 07/18 18:49
cuteclare:java 好像不支援 overload operator orz 07/18 19:30
cuteclare:不過 native 大神可以解決一切問題 ! 07/18 19:33
tails32100:幼女控+1....不對啊!歪串了Orz 07/19 00:05
abola921:老實說,回到最後,我不太知道原po想要什麼東西 07/19 16:10
abola921:最後一個回文是我錯!! 現在回頭看我真的沒發現他說的事 07/19 16:13
abola921:太不專心看文就回,改進改進,歹勢 07/19 16:21
PsMonkey:沒有這麼嚴重啦 XD 要說犯錯我已經有罄竹難書的成就了 07/19 16:36