[问题] 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