Java 初级其它类学习笔记(基础)

外部类和内部类

外部类的封装等级只有以下两种形式:

1.
public class 外部类名 {

}
//有public修饰符的外部类属于对外公开的“文件类”,即.java文件名与此类名保持一致
2.
class 外部类名 {

}
//“缺省”修饰的外部类属于普通类,而非“文件类”

内部类一般形式:

class 外部类名 {
    class 内部类名 {

    }
}

(内部类属于外部类中的,所以内部类可以直接访问外部类的成员,包括私有成员。反之外部类要访问内部类的成员,就必须建立内部类的对象)

abstract 抽象类及其抽象方法

        首先它们都得用 abstract 来修饰,而抽象方法不能拥有方法体。而要创建对象需借助向上转型,主要目的是被其子类调用。抽象类可以看作是对类的进一步抽象。在面向对象领域,抽象类主要用来进行类型隐藏。

注意:外部抽象类不能用 static 修饰,但内部的抽象类可以使用 static 修饰。抽象类也可以继承抽象类,但只有具体非抽象派生类才能重写它里面的方法或创建实例。

interface 接口指导和规范

        interface 接口可以说是抽象类独立出来的特例。Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征而缺少方法的实现,而这些方法可以在不同的地方被不同的类实现,通过实现可以具有不同的行为(功能)。

abstract VS interface
abstractinterface
是否允许有实例变量×
是否允许有静态成员变量都允许
静态成员变量的类型限制访问类型任意只能是 public static final 类型,且默认为此类型
是否允许有构造方法允许,但不能被实例化不允许
是否兼容 private、final 关键字都不允许(因为它俩是杜绝重写和继承的)
是否允许有静态方法都允许
是否允许有抽象和非抽象的方法都允许
与类关系继承关系实现关系
从类的层次上看本质上是个类从抽象类独立出来的一个特例
性质指导类、定义类模板更方便地指导类、定义类模版
总结
  • 一个类可以实现多个接口,但最多只能继承一个抽象类(多实现,单继承
  • 有抽象方法的一定是抽象类;但有抽象方法不一定是抽象类,也有可能是接口

匿名内部类(是内部类的简化/“一次性”写法)

出现背景:需要一个子类或实现类,但它的使用频率不高(一次性的),所以我们没必要把它编写成独立的一个类,这就需要使用匿名内部类了!

前提:父类或接口 二选一,且最多只能选择一个继承/实现。

匿名内部类 VS 抽象类
匿名内部类抽象类
是否有构造方法没有,但可以定义实例初始化块(构造方法的方法名需要和类名一致,而匿名内部类没有类名)有,但不能实例化
能否创建实例匿名内部类可以创建实例抽象类不能创建实例

格式:

外部类.内部类 对象名=new 外部类().内部类() {方法重写};

匿名内部类的子类/实现类构造例子:

1.
abstract class Father {
...
}

public class anonymity {
    Father f = new Father() {
//这{}里就是个匿名内部类,注意有个分号;在下面        
    };
}

2.
interface Father {
...
}

public class anonymity {
    Father f = new Father() {
//注意!匿名内部类的作用域就是这个{}里面    
    };
}

而匿名方法最常用的情况体现在多线程上!因为要实现多线程就必须继承Thread类或实现Runnable接口,这正好符合匿名内部类的使用前提。

例子代码如下:

public class ThreadDemo {
    public static void main(String[] args) {
        Thread t = new Thread() {
            @Override
            public void run() {
                super.run();
//这里写你自己想同步的线程代码
            }
        }
    }
}

Object类

Date类

System类

String体系类

包装类

有空再补充这些类的专写,拜拜!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值