类的高级特性

1.使用import指定了一个包中所有类时,并不会指定这个包的子包中的类,如果要用到,需要再次对子包作单独引用
2.使用import可以导入包(.*导入包中所有类)、静态成员
3.被定义为final的常量需要定义时使用大写字母命名,并且中间需要使用下划线进行连接。定义为final的数据无论是常量、对象引用还是数组,在主函数中都不可以被改变
4.final关键字定义的变量必须在声明时对其进行赋值操作,除可修饰基本数据类型的常量之外,还可以修饰对象引用、数组、方法的参数。被定义为final的对象引用只能指向唯一一个对象,不可以将它再指向其他对象,但一个对象本身的值却是可以改变的,为了使一个常量真正做到不可更改,可将常量声明为static final
5.一个定义为private的方法隐式被指定为final类型;父类中被定义为private final的方法,子类中也可以定义,但不是正常覆盖(满足一个对象向上转型为它的基本类型并调用相同方法),而是生成一个新方法。

6.成员内部类: 

             在内部类中可以随意使用外部类的成员方法以及成员变量,尽管被修饰为private;内部类的实例一定要绑定在外部类的实例上(如果从外部类初始化一个内部类对象,那么内部类对象就会绑定在外部类对象上)

              可通过外部类方法返回内部类引用,也可在主方法中通过外部类引用+new操作符实例化内部类对象


              可向上转型为接口(将一个private内部类向上转型为其父类对象,或者直接向上转型为一个接口,本程序中就可以完全隐藏内部类的实现过程)可在外部提供一个接口,在接口中声明一个方法,在实现该接口的内部类中实现该接口的方法,可定义多个内部类以不同方式实现接口中同一个方法,而在一般的类中是不能多次实现接口中同一方法的(该技巧经常被使用在Swing编程中)

            外部类与内部类成员变量名称相同时,可用this关键字


7.局部内部类:在类的方法中或任意的作用域中定义,并非类中的一部分,外部不能访问该内部类,但该内部类可以访问当前代码块的常量(将方法参数设置为final型,内部类不可改变其值)以及外部类的所有成员
8.匿名类:return new A{...//内部类体}; 返回类的引用 插入匿名类的代码,定义结束后需加分号标识
9.静态内部类:不可使用外部类的非静态成员。创建静态内部类的对象,不需要其他外部类的对象;不能从静态内部类的对象中访问非静态外部类的对象
10.内部类的继承:在某个类继承内部类时,必须硬性给予这个类一个带参数的构造方法,并且该构造方法的参数为需要继承内部类的外部类的引用,同时在构造方法体中使用a.super()语句,为继承提供了必要的对象引用
  




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值