慕课课程《Java入门第二季》收获

第二季主要是面向对象编程的,收获如下:

匿名内部类

匿名内部类没有类名,可以临时定义马上使用其方法
匿名内部类主要用在直接调用接口方法而不在该类中override该方法的情况中(Android中比较常用),换句话说,它是临时写的方法,仅能使用一次,块内有效,用完后若要继续使用需要重新定义。用法如下:

    new InterfaceName(){   //调用构造函数
    //override InterfaceMethod
    }.InterfaceMethod(arguments);

这样就能直接调用该方法了。

内部类

顾名思义,在主类中定义的一个类,称之为内部类。可以在类内直接定义,也可在方法中定义,此时成为方法内部类
搞清它自身的特点以及与外部类(主类)的关系非常重要,总结如下:

  1. 内部类可以直接访问外部类的成员和方法,但外部类不能直接访问内部类的成员和方法。若外部类要访问内部类的成员和方法,需要实例化内部类。
  2. 对于方法内部类,类名是不能用static修饰符以及访问控制符修饰的,但非方法内部类是可以修饰的。
  3. 静态内部类不能直接访问外部类的非静态成员,若要访问,需要实例化(可用匿名内部类的方法)。静态方法类似,也需要实例化。可以想想main方法的使用,就需要在里面实例化main方法所在的类,才能使用其它方法。
  4. 若在内部类中,需要访问外部类的静态成员名称与内部类相同,则可通过“外部类.成员名称”访问外部类的静态成员。
  5. 外部类创建非静态内部类对象时,方法如下:InnerClassName Name = OuterClassName.new InnerClassName();,若是静态内部类,则可以省略外部类名称。
  6. 外部类与内部类具有相同的成员和方法,则可通过OuterClassName.this.methodName();访问外部类的方法。
  7. 在保存有内部类的java文件时,会生成额外生成名为“外部类名$内部类.class”的内部类文件。

对象初始化

在设计一个类时,可以在三个地方进行初始化,它们分别是:构造函数、初始化块静态初始化块

public class xxx{
    {
    //初始化块
    }

    static{
    //静态初始化块
    }

    public xxx(){
    //构造函数
    }
}

它们调用的先后顺序为:
静态初始化块 -> 初始化块 -> 构造函数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值