成员内部类不可以有静态属性
成员内部类不可以有静态属性。
如果在外部类的外部访问内部类,使用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 }