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

来源:7-7 Java 中的静态内部类

www_

2015-07-10 16:05

  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();
     }

写回答 关注

2回答

  • wswzh0329
    2015-10-04 20:37:22

    。。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


    wswzh0... 回复激流勇进__

    。。对了 你能帮我看看这个问题吗 关于内部类继承的问题 http://bbs.csdn.net/topics/391920591

    2016-03-25 23:20:48

    共 5 条回复 >

  • 康振宁
    2015-07-10 17:56:09

    不能定义静态方法

    sainty... 回复wswzh0...

    要访问也是很容易的啊,new一个对象就可以访问其变量了撒。

    2015-10-24 15:47:07

    共 3 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530643 学习 · 6091 问题

查看课程

相似问题