成员内部类不可以有静态属性

Posted borter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了成员内部类不可以有静态属性相关的知识,希望对你有一定的参考价值。

成员内部类不可以有静态属性。

如果在外部类的外部访问内部类,使用out.inner.

建立内部类对象时应注意:

在外部类的内部可以直接使用inner s=new inner();(因为外部类知道inner是哪个类,所以可以生成对象。)

而在外部类的外部,要生成(new)一个内部类对象,需要首先建立一个外部类对象(外部类可用),然后在生成一个内部类对象。

Outer.Inner in=Outer.new.Inner()。

错误的定义方式:

Outer.Inner in=new Outer.Inner()。

注意:当Outer是一个private类时,外部类对于其外部访问是私有的,所以就无法建立外部类对象,进而也无法建立内部类对象。

 

 1 package TomText;
 2 //将定义日期的功能用构造函数来实现。
 3 public class TomText_42 {
 4     private int day;
 5     private int month;
 6     private int year;
 7     TomText_42(int d,int m,int y) {        //构造函数
 8         day=d;
 9         month=m;
10         year=y;
11     }
12     public void printDate( ) {
13         System.out.println("今天是"+year+"年"+month+"月"+day+"日");
14     }
15     public static void main(String [ ] args) {
16         TomText_42 today=new TomText_42(12,3,2005);        
17         today.printDate( );
18         TomText_42 anotherday=new TomText_42(21,3,2005);        
19         anotherday.printDate( );
20     }
21 
22 }

 

以上是关于成员内部类不可以有静态属性的主要内容,如果未能解决你的问题,请参考以下文章

2017.4.8 笔记 final

Java面试题|静态内部类和非静态内部类有什么区别?

java静态内部类

内部类

内部类

java 内部类(inner class)详解