java 7 中 内部类 相关知识总结


时间:2017年7月18日

摘要:内部类,局部内部类,匿名类,静态内部类

       1)除匿名类外其他的类都可以有构造函数。

       2)内部类可以访问外部类的对象。

       3)局部内部类不能用public、private等修饰。

       4)局部内部类可以访问外部类对象,但是不能访问局部非final型的属性(可以引用)。

       5)匿名内部类不能有构造函数,构造参数必须传给超类,在实现接口的时候不能有任何构造函数。

       6)静态内部类不能引用外部类对象(除去静态变量,或方法)

       7)只有内部类可以被定义为 static。

       8)接口中的内部类自动成为 static 和 public类。

      补充:static修饰的类或方法,所访问的变量或方法必须是static。


//内部类相关知识点的测试代码

public class OuterClass{
	
	static int i = 2;
	String name = "tom";
	OuterClass(){
		inClass test = new inClass();
		test.display();
		//partClass part = new partClass();   不可以
		
	}
	
	public static void main(String [] args){
		//inClass test = new inClass();
		//test.display();                         不可以	
		//System.out.println(this.name);          不可以
		//System.out.println(this.i);             不可以
		//System.out.println(i);                  可以           
		OuterClass ourter = new OuterClass();
		ourter.test(i);
		i++;
		ourter.test(i);
		OuterClass.inStaticClass instatic = new OuterClass.inStaticClass();
		instatic.display();               
	}

	public void test(final int in){  //局部内部类,比内部类作用范围更小

		int unfinal = 10;   
		

		class partClass{//不能用public private 等修饰      局部内部类也可以由构造函数
			int h ;
			public partClass(){
				h = 10;
			}
			public void display(){
				System.out.println(in);
				System.out.println(h);

				//in++;          不可以
				//unfinal++;     不可以对局部非final变量进行访问

				System.out.println(unfinal);     //可以对局部变量进行输出
			}
		}
		partClass part = new partClass();
		part.display();
	}	
	
	public class inClass{       //内部类,内部类可以有构造函数
		public inClass(){
		
			i = 30;
			name = "lucy";
		}
		public void display(){
			System.out.println(name + i);
			i = i+10;
		}
	}
	
	public static class inStaticClass{     //静态内部类,与普通内部类的不同在于不引用外部类的对象
		public inStaticClass(){
		      //  System.out.println(name);  不可以
			System.out.println(i);

		}
		
		public void display(){
			//System.out.println(name);  不可以
			System.out.println(i);
		}
	}
	/*
	补充:匿名内部类不能有构造函数,构造参数必须传给超类,在实现接口的时候不能有任何构造函数
	*/

	
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值