【黑马程序员】Java基础学习技术博客——内部类

本文深入探讨Java内部类的各种形式,包括非静态内部类、静态内部类、局部内部类及匿名内部类的特点与使用方法。详细解释了不同类型的内部类如何被创建、使用以及它们之间的区别。

 ------- android培训java培训、期待与您交流! ----------

package javase;

public class Day02_内部类 {

/*
 * 类不可以被private 修饰?
 * 错,内部类可以被private 修饰。。。因为类的成员可以被private修饰,并且成员之间可以相互访问,
 * 内部类可以被static修饰,而外部类不可以,因为被static修饰的是所属于类,外部类是属于包的。
 * 被static修饰的所属于外部类本身,否则则属于实例!
 *
 *
 * 内部类如果被static静态修饰,那么它寄生在外部类本身里面
 * 如果不被static修饰,那么它寄生在外部类的实例里面
 * out.this代表内部类实例所寄生的宿主类的实例的引用。
 * ====================================================================
 *
 * 非静态内部类
 * 在外部其他类中调用非静态内部类:
 * outer out  = new outer ();
 * outer.inner in =  out.new inner();
 * 简写就是  outer.inner in = new outer().new inner();
 *
 * 对内部类的继承:
 * 里面的构造器必须先访问宿主类的构造器,由宿主对象来调用它的构造器。
 * class Other extends outer.inner
 * {
 *   Other()
 *   {
 *    new outer.super();
 *    //初始化代码块。。。
 *   }
 *
 * }
 * 或者是:
 * class Other extends outer.inner
 * {
 *   Other(outer out ){
 *    out.super();
 *   }
 *
 * }
 * ========================================================
 * 对于静态内部类:你可以把外部类当成内部类的包就可以了。
 * 静态内部类他是寄生在外部类的类本身中,所以它不需要创建宿主类的对象。
 * outer.inner in = new out.inner();
 * 对于继承:
 * class Other extends outer.inner{}这样写就可以了,里面的内容跟定义普通类一样。不需要创建外部类的实例。
 *
 * =========================================================
 * 局部内部类:
 * 局部内部类可以被static修饰吗?
 * 局部内部类不可以被static修饰,因为局部内部类的上一级程序单元是方法,而不是类,因此用static修饰没有任何意义。
 * 另外因为局部内部类的作用域是方法,其他程序单元也不可能访问一个方法中的成员,所以任何访问权限修饰符都不能使用!
 *
 * Java中每个类都会有对应的class文件
 * 局部内部类的class文件为:外部类$N内部类.class
 * 为什么要用N?
 * 因为不同的方法中可以定义相同类名的局部内部类
 * =============================================================================
 *
 * 匿名内部类:是一个没有名字的内部类。
 * 匿名内部类在创建时做了三件事:
 * 1,定义了类
 * 2,创建了对象
 * 3,将子类实例赋值给了父类或者接口的引用
 *
 *
 * 匿名内部类的两条规则:
 * 1,匿名内部类必须显示的继承一个接口或者类。
 * 2,匿名内部类不能定义构造器,因为匿名内部类没有名字
 * 3,匿名内部类不能定义抽象方法,因为匿名内部类在创建时就返回了一个实例。
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值