黑马程序员-day08-内部类与包

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

内部类含义定义在类中的类
访问内部类访问外部类,可以任意访问;
外部类访问内部内,需建立内部类对象
其他类访问内部类方式一,直接以:外部类类名.内部类类名 对象名称=new 外部类类名().new 内部类类名();的形式建立内部内的对象。
方式二:在外部类中建立内部类对象,在其他类中建立外部类对象,以:外部类对象名称.内部类对象名称.内部类变量或方法;的形式访问
同名变量x当外部类成员变量,内部类成员变量,内部类局部变量同名时,在调取该局部功能时,默认该变量x指的是内部类局部变量,若要调取内部类成员变量,应使用this.x
若要调取外部类成员变量,应使用外部类类名.this.x来调取
特点内部类作为外部类的成员之一,可以被private、static等修饰
静态内部类当内部类中定义了静态成员,该内部类也必须是静态的
当内部类被定义为静态时,只能访问外部类中的静态成员
当外部类中的静态方法访问内部类时,即使建立对象,该内部类也应该是静态的
外部其他类访问静态内部类的非静态成员:建立对象访问,但是因为内部类是静态的,外部类一创建,内部类就存在了,因此不需要创建外部类对象,可以使用外部类类名调用内部类:外部类类名.内部类类名。那么调用格式为:new 外部类类名.内部类类名().静态内部类的非静态成员;
外部其他类访问静态内部类的静态成员:由于全部是静态,因此可以被类名直接调用,格式如下:外部类类名.内部类类名.内部类静态成员
与普通内部类区别静态内部类具备静态特性,只会被加载一次,可略微提高效率
定义原则当描述事物时,事物的内部还有事物,该事物用内部类描述,因为内部事物在使用外部事物的内容
定义在局部(函数)中的内部类1、不可以被成员修饰符修饰,在调用方法时,内部类只有被创建了对象了,内部类中的方法才会跟着被调用的方法执行。且创建对象的代码应该放在内部类的后面,否则会报错
2、不能访问局部变量,只能访问被final修饰的局部变量(是个bug,JDK1.8已取消)
3、局部内部类不能在方法以外的地方被访问
匿名内部类内部类的简写方式,必须是继承类或实现接口时,才能定义匿名内部类
格式:new 父类名称(){}
调用格式:new 父类名称(){}.方法
匿名内部类实际上是其所继承或实现的类的子类的实例对象,包含子类的特有方法体和父类复写体或实现体,若非要命名的话,可以以父类名称进行引用。但是命名后不能调用子类特有方法,因为是父类引用
任何类中都可以创建匿名内部类,即使其没有具体的继承或实现父类,此时匿名内部类实际上是Object类的子类,因此格式为:new Object(){}
匿名内部类中定义的方法(包括复写或实现)最好就一两个
作用便于类的管理,有按功能划分和模块划分
格式package 包名,必须是第一条可执行语句,只能有一句

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值