A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chenxin_0916 中级黑马   /  2015-12-28 23:42  /  615 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class  Test0019{
        int age;
        String name;
        void haha(){
                System.out.println("hehe!");
        }
        public static void main(String[] args) {
                Test0019 p = new Test0019();
                p.age = 17;
                p.haha();
                System.out.println(age);
        }
}
这样定义的类,为什么只能用他的方法,不能用它的变量?

2 个回复

倒序浏览
本帖最后由 唱一些温暖 于 2015-12-29 12:47 编辑

System.out.println(age);//报错是吧
你的age是成员变量,只能被对象调用
p.age = 17;//这里不是被调用了吗
System.out.println(p.age);//改成这样就可以了

成员变量只能被对象调用。
静态变量可以被对象调用,还可以被类名调用。

要么定义变量age时,前面加static修饰,让他变成静态变量
static int age;
System.out.println(age);//那么这条就可以执行了,Test0019.是隐藏的,其实语句是下面这样的
System.out.println(Test0019.age);

回复 使用道具 举报
静态方法中只能调用静态变量,而方法是可以通过类名来调用的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马