内部类 成员 静态 局部 匿名

概念:在一个类的内部再定义一个完整的类

特点:编译之后可别分生成独立的字节码文件

内部类可直接访问外部类的私有成员,而不破坏封装

内部类:成员内部类、静态内部类、局部内部类、匿名内部类

成员内部类:创建对象 先创建外部类对象 再通过外部类对象.new.内部类类名() 创建内部类对象

外部类类名.this 引用外部类的当前对象

public class TsetInner {
	public static void main(String[] args) {
		Outer o1= new Outer(11);
		Outer.MemberInner in1= o1.new MemberInner();
		in1.method();
		
		Outer o2= new Outer(22);
		//Outer.MemberInner in2= o2.new MemberInner();
		//in2.method();
	}
}
class Outer{
	
	private int a;
	public Outer(int a) {
		this.a=a;
	}
	public void m() {
		//局部变量
		int x= 20;
		//局部内部类
		class localInner{
			
		}
	}
	//成员内部类
	class MemberInner{
		private int a = 33;
		public void method() {
			int a= 44;
			System.out.println(a);//44
			System.out.println(this.a);//33
			System.out.println(Outer.this.a);//11
		}
	}
	//静态内部类
	static class StaticInner{
		
	}
}

静态内部类:只能访问外部类的静态成员

局部内部类:作用范围 从定义开始 到代码块结束

局部内部类不能定义静态成员

局部内部类可以访问外部类的私有成员 还能访问外部类的局部变量 但是要加final

public class TestTeacher {
	public static void main(String[] args) {
		Students stu = new Students();
		stu.study();
	}
}
class School{
	//静态的教师教课A和B
	public static Teacher getTeacher(int n) {
		class TeacherA implements Teacher{
			public void teach() {
					System.out.println("A");
			}
		}
		class TeacherB implements Teacher{
			public void teach() {
				System.out.println("B");
			}
		}
		//判断学习安排的老师进行讲课 学生访问不到 只有数值0或1
		if(n%2==0)return new TeacherA();
			else return new TeacherB();
			
		}
}
class Students{
	//学习方法 不能自己在去决定哪个老师来上课
	public void study() {
		Teacher t=School.getTeacher(0);
		t.teach();
	}
}
//接口 为了让教师方法都可以去随意调用访问
interface Teacher{
	void teach();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思丰百年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值