黑马程序员技术交流社区

标题: 这样得到的是不变量的值 我怎么才能输出对象的值 [打印本页]

作者: 李红志    时间: 2013-3-11 11:40
标题: 这样得到的是不变量的值 我怎么才能输出对象的值
本帖最后由 李红志 于 2013-3-11 21:51 编辑

这样输出的是局部变量

这样就出错

作者: 付玉光    时间: 2013-3-11 11:53
本帖最后由 付玉光 于 2013-3-11 11:59 编辑

{:soso_e100:}//这个题,没有什么可用文字表达的,直接上代码就能说明。

class BB {
        int test = 10;
        void printTest(){
                int test = 20;
                System.out.println("test "+ test);
        }
        public static void main(String args[]){
                BB b = new BB();
                b.printTest();
        }
}
class B1 {
        int test = 10;
        void printTest(){
                int test = 20;
                System.out.println("test "+ test);
        }
        public static void main(String args[]){
                B1 b = new B1();
                b.printTest();
                 //类中的成员属性,得通过对象来调用!
                System.out.println("test "+b.test);
        }
}
作者: 李红志    时间: 2013-3-11 11:56
付玉光 发表于 2013-3-11 11:53
class BB {
        int test = 10;
        void printTest(){

你这个运行过吗?我怎么感觉不对啊 第二个和我第二个不是一样吗
作者: 付玉光    时间: 2013-3-11 12:02
李红志 发表于 2013-3-11 11:56
你这个运行过吗?我怎么感觉不对啊 第二个和我第二个不是一样吗

:)你事例的第二个中,成员变量,得用对象来调用 ,而你只写了test,没用对象来调用呀。
作者: 李红志    时间: 2013-3-11 12:13
付玉光 发表于 2013-3-11 12:02
你事例的第二个中,成员变量,得用对象来调用 ,而你只写了test,没用对象来调用呀。 ...

我用this.test调用也不对

作者: 王智威    时间: 2013-3-11 12:19
哥们我提醒你一下,以后发帖了希望代码不要截图,这样给看帖的人带来不变。
public class A {
   int test=10;
   void printText(){
    int test=20;
    System.out.println("Test"+this.test);
   }
public static void main(String[] args) {
   A st=new A();
   st.printText();
}
}

我不知道你是不是说这样

作者: 付玉光    时间: 2013-3-11 12:32
李红志 发表于 2013-3-11 12:13
我用this.test调用也不对

嘿!:)你java基础学的怎么样呀?难道你不知道 ,main是 静态的 主函数数 ,在静态的 方法中 是不能出现
this  或super  的!!!!:)
作者: 葛晓红    时间: 2013-3-11 21:00
public class ScopeTest
{
        private static int test=10;
        void printTest()
        {
                int test=20;
                System.out.println("test="+test);
        }
public static void main(String[] args)
{
        ScopeTest st=new ScopeTest();
            st.printTest();
    System.out.println("test "+ScopeTest.test);
}
}
//将成员变量被静态static修饰后,除了被对象调用外还可以直接被类名调用。类名.静态成员
作者: 张宁    时间: 2013-3-11 21:31
以后问问题 直接上代码,不要截图,懒得再敲一遍,如果他们回答得还有什么问题,麻烦你在发一遍代码




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2