为了账号安全,请及时绑定邮箱和手机立即绑定

关于静态内部类直接访问外部类的非静态成员 new 外部类().成员 能不能赋值

//外部类

public class HelloWorld{

  private int num = 1;

  // 外部类中的静态变量score

  private static int score = 84;

  

  // 创建静态内部类

public     static     class SInner {

      // 内部类中的变量score

      int score = 91;

      

public void show() {

System.out.println("访问外部类中的score:" +     HelloWorld.score      );

System.out.println("访问内部类中的score:" + score);

HelloWorld hello = new HelloWorld();

System.out.println(hello.num);//这句对的

public int a = hello.num;//这句错了

}

}


// 测试静态内部类

public static void main(String[] args) {

// 直接创建内部类的对象

      SInner si = new SInner();

      

      // 调用show方法

si.show();

System.out.println(si.a);//这句错了

}

}

上面的这三句

public int a = hello.num;

System.out.println(si.a);

这两句是错的

System.out.println(hello.num);

这句是对的


正在回答

2 回答

不好意思,看着这个代码上的get方法,觉得作用会不会不大?

0 回复 有任何疑惑可以回复我~

已解决

我把东西写在函数里了。。。

下面是对的

package com.test.second;


//外部类

public class test2 {

  private int num = 1;

  // 外部类中的静态变量score

  private static int score = 84;

  

  // 创建静态内部类

public     static     class SInner {

      // 内部类中的变量score

      int score = 91;

      

public void show() {

System.out.println("访问外部类中的score:" +     test2.score      );

System.out.println("访问内部类中的score:" + score);

}

public int getNum() {

return a;

}

// test2 hello = new test2();

// private int a = hello.num;

int a = new test2().num;

}


// 测试静态内部类

public static void main(String[] args) {

// 直接创建内部类的对象

      SInner si = new SInner();

      

      // 调用show方法

si.show();

System.out.println(si.a);

}

}


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于静态内部类直接访问外部类的非静态成员 new 外部类().成员 能不能赋值

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信