[問題] public無法用的問題

作者: ms0561188 (蟑螂吃滷蛋)   2014-07-17 15:50:06
如題 先上程式碼
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
abc();
cde();
}
public void abc(){
CheckBox Checkboxa =(CheckBox) findViewById(R.id.checkBox1);
CheckBox Checkboxb =(CheckBox) findViewById(R.id.checkBox2);
CheckBox Checkboxc =(CheckBox) findViewById(R.id.checkBox3);
CheckBox Checkboxd =(CheckBox) findViewById(R.id.checkBox4);
CheckBox Checkboxe =(CheckBox) findViewById(R.id.checkBox5);
CheckBox Checkboxf =(CheckBox) findViewById(R.id.checkBox6);
Button buttona = (Button) findViewById(R.id.button1);
}
public void cde(){
Checkboxa.setOnCheckedChangeListener(new CheckBox.OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if(Checkboxa.isChecked()){
Toast.makeText(MainActivity.this, "你選擇了"+Checkboxa.getText(),
Toast.LENGTH_LONG).show();
在編譯時cde涵式裡面的 Checkboxa 無法用到abc裡面的定義 請問是哪裡出了問題
新手發問請多多包涵
作者: zxc190 (卡卡)   2014-07-17 16:23:00
定義在不同scope所以無法使用 兩個方法1.cde裡面重新宣告abc的checkbox 但是會有重複物件在記憶體2.將定義拉到全域變數裡面
作者: ms0561188 (蟑螂吃滷蛋)   2014-07-17 16:26:00
可是那個不是public 是可以共用的嗎 不曉得能否可以從另一個public 引用進來 還是我的觀念錯了?
作者: Deltaguita (貝里斯)   2014-07-17 17:07:00
錯了 method裡面的變數只能在宣告的method內使用你要複用的話應該宣告在class裡面 跟public 沒有關係另外 小弟要建議你的變數命名除了變數最好使用小寫開頭這樣比較容易區分class 跟變數建議你java方便要找一些書來看 不然會寫得很辛苦public private protected 這三個google一下區別對了還有一個default
作者: a020304888a (張小台)   2014-07-17 19:17:00
public是對其他class 不是自己本身其他的method
作者: rj9rj9123 (MISS)   2014-07-18 22:50:00
建議先讀點java的書,不然你會遇到瓶頸
作者: ms0561188 (蟑螂吃滷蛋)   2014-07-21 09:18:00
謝謝大大 懂了!!! 感謝大家耐心回答

Links booklink

Contact Us: admin [ a t ] ucptt.com