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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class lianxi3
{
        public static void main(String[] args)
        {
               
                new lianxi3 ();//通过,不理解
        }
}
class A
{
        int x=7;

}
class B extends A
{
        int x = 5;
        static void function()
        {
                //System.out.println(x);//不行,我能理解
                //System.out.println(this.x);//不行,我能理解
                //System.out.println(super.x);//不行,我能理解
                System.out.println(new B().x);//通过 x=5  不理解
                System.out.println(new A().x);//通过 x=7  不理解
        }

}

评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

5 个回复

倒序浏览
新建一个对象,访问对象的成员变量为什么不能理解呢
回复 使用道具 举报
哈哈,你这是走火入魔的节奏啊.
回复 使用道具 举报
  1. //System.out.println(x);//不行,我能理解
  2.           //System.out.println(this.x);//不行,我能理解
  3.           //System.out.println(super.x);//不行,我能理解
  4.              System.out.println(new B().x);//通过 x=5  不理解
  5.              System.out.println(new A().x);//通过 x=7  不理解
复制代码

因为x是实例变量,只有产生类对象后才能引用。前三条语句都没有实例化,因此不行。new B().x和new A().x就是分别产生一个B和A的对象,然后引用其x值。
回复 使用道具 举报
new lianxi3 ();//通过,不理解
自己的main函数里面创建自己对象 这天天用的啊 看错了吧你
回复 使用道具 举报
嗯,我弄错了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马