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

静态内部类中可以定义静态方法吗?如果可以,怎样访问外部类中的非静态变量和静态变量及它所在的静态内部类中的不同变量?静态内部类中可以定义静态变量吗?如果可以外部类如何访问它呢?

  public class HelloWorld {    
     // 外部类中的静态变量score
     private static int score = 84;     
     // 创建静态内部类
     public  static  class SInner {
         // 内部类中的变量score
         int score = 91;      
         public static void show() {
             System.out.println("访问外部类中的score:" + HelloWorld.score  );
             System.out.println("访问内部类中的score:" + score);
         }
     }
     // 测试静态内部类
     public static void main(String[] args) {
         // 直接创建内部类的对象
         SInner si=new SInner();
         // 调用show方法
         si.show();
     }

正在回答

5 回答

。。eclipse里面没有报错啊!

package com.shiyan;


public class Outer2 {

   static int score1=150;           //外部类的静态变量

   int score2=61;                   //外部类的普通变量

   

   public static class Inner{       //静态内部类Inner

  static int score1=89;          //静态内部类的静态变量

  int score2=88;               //静态内部类的普通变量

  

  public static void show(){        //静态内部类中的静态方法

  System.out.println(Outer.score1);

  System.out.println(new Outer().score2);//为什么不能用Outer.this.score2

  System.out.println(score1);

  System.out.println(new Inner().score2);//为什么不能直接用score2;

  }

   }

   //内部测试类

   public static void main(String[] args) {

System.out.println(score1);

System.out.println(new Outer().score2);

// Inner.show();

/*Inner in=new Inner();

in.show();*/

new Inner().show();

}

  

}

输出:

150

62

99

62

89

88


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

激流勇进__

你的输出结果是错误的!
2016-03-22 回复 有任何疑惑可以回复我~
#2

wswzh0329 回复 激流勇进__

。。是错了!! 代码中new Outer2().... 第三个应该是150 62应该是61 对了吧 感谢指出,不过重点不在结果 现在也已经早就解决了注释中的两个问题!再次感谢你能认真的帮我看代码解决问题,谢谢!
2016-03-25 回复 有任何疑惑可以回复我~
#3

激流勇进__ 回复 wswzh0329

不客气。慕课网能提供这么好的学习交流平台才是最该感谢的!
2016-03-25 回复 有任何疑惑可以回复我~
#4

wswzh0329 回复 激流勇进__

对对对 学这种东西还是得多交流 我之前刚刚接触java的时候,把慕课网中每个小节下面别人的问题都浏览了一遍 很多东西就看了概念根本理解不到位
2016-03-25 回复 有任何疑惑可以回复我~
#5

wswzh0329 回复 激流勇进__

。。对了 你能帮我看看这个问题吗 关于内部类继承的问题 http://bbs.csdn.net/topics/391920591
2016-03-25 回复 有任何疑惑可以回复我~
查看2条回复

不能定义静态方法

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

wswzh0329

。。eclipse 里面没有报错啊! 还有能帮我解决注释中的问题吗?谢谢!
2015-10-04 回复 有任何疑惑可以回复我~
#2

saintyyu

为了回复你这个问题,我还特意来注册个账号,是能定义静态方法的哈,不仅可以定义静态方法,还可以定义静态变量,为什么呢?原因是static修饰了内部类,这时该内部类中所定义的所有方法和变量都默认是static的了,所以你加不加static都没问题。楼上说不能定义静态方法是说的非静态内部类吧?
2015-10-24 回复 有任何疑惑可以回复我~
#3

saintyyu 回复 wswzh0329

要访问也是很容易的啊,new一个对象就可以访问其变量了撒。
2015-10-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

静态内部类中可以定义静态方法吗?如果可以,怎样访问外部类中的非静态变量和静态变量及它所在的静态内部类中的不同变量?静态内部类中可以定义静态变量吗?如果可以外部类如何访问它呢?

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