类的第五个成员:内部类

内部类:

1.定义:我们可以在一个类A的内部,声明另一个类B.此时,类A:外部类;类B:内部类
2.内部类的分类:成员内部类 (静态的 vs 非静态的) vs 局部内部类
3.说明:
一方面,作为类:

  •  		①内部可以声明属性、方法、构造器
    
  •  		②可以被abstract修饰
    
  •  		③可以被 final修饰
    

另一方面,作为外部类的成员:

  •  		①可以被4种权限修饰符修饰。
    
  •  		②可以调用外部类的属性、方法等结构
    
  •  		③可以被static修饰
    

4.成员内部类:
4.1如何创建成员内部类的对象?(静态的,非静态的)

//如何创建静态的成员内部类对象
Person.Dog dog = new Person.Dog();//错误的:Person.new Dog()
dog.show();
//如何创建非静态的成员内部类对象
//Person.Bird bird = new Person.Bird();//错误的
Person p = new Person();
Person.Bird bird = p.new Bird();//错误的:new p.Bird();

bird.display(“麻雀”);

4.2如何在成员内部类中调用外部类的结构?

class Person{
String name;

class Bird{
String name;

	public void display(String name){
		System.out.println(name);//形参
		System.out.println(this.name);//Bird的属性
		System.out.println(Person.this.name);//Person的属性
	}

}

}

5.局部内部类:
此情况开发中很少见
public void method(){

	局部内部类
	class InnerClass{
		
	}
	
}

较为常见的
返回一个实现了Comparable的类的对象
public Comparable getInstance(){
	
	//写法一:提供实现了接口的内部类
class MyComparable implements Comparable{

	@Override
	public int compareTo(Object o) {
	return 0;
	}
	
}


return  new MyComparable();
	
	//写法二:返回接口的匿名实现类的匿名对象
	return new Comparable(){

		@Override
		public int compareTo(Object o) {
			return 0;
		}
		
	};
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值