Java快速入门07

单例设计模式

  1. 饿汉式
    1. 构造器私有化,防止用户new对象出来
    2. 在类的内部创建一个对象
    3. 向外给出对象的静态公共方法

代码展示

public class SingletonModeTest {
    public static void main(String[] args) {
        System.out.println(SingletonMode.getInstance());
        System.out.println(SingletonMode.getInstance());
    }
}

class SingletonMode {
    private String name;
    private static SingletonMode instance = new SingletonMode("singleton");
    private SingletonMode(String name) {
        this.name = name;
    }
    public static SingletonMode getInstance() {
        return instance;
    }
}

2.懒汉式

class SingletonMode1 {
    private String name;
    private static SingletonMode1 instance = null;
    private SingletonMode1(String name) {
        this.name = name;
    }
    // 只有当调用时才会创建
    public static SingletonMode1 getInstance() {
        if (instance == null) instance = new SingletonMode1("singleton");
        return instance;
    }
}

java.lang.Runtime就是经典的饿汉式

final关键字

  1. final 修饰类,表示类不能被继承, java.lang.String类就被final修饰
  2. final 修饰方法,表示方法不能被重写override
  3. final 修饰变量,表示该变量为常量,不能被修改,就像c里面的const关键字
  4. 属性带final可以在构造函数或者代码块里完成初始化
class A {
    final int a = 1;
    final int b;
    final int c;
    {
        c = 20;
    }
    A(int b) {
        this.b = b;
    }
}
  1. 可以让类不被加载
public class Main {
    public static void main(String[] args) {
        System.out.println(A.x); // static 代码块不会被执行
    }
}

class A {
    public static final int x = 20;
    static {
        System.out.println("static" + x);
    }
}

抽象类

1.关键字为abstract
2.当一个类中有方法为abstract时,要将该类声明为abstract class
3.抽象类不能被实例化
4.抽象类不一定要包含抽象方法xxx
5.因为private, final, static描述的方法都不能被子类重写,所以不能配合abstract使用

接口

interface

1.接口中的方法没有方法体,且省略了 public abstract
2.接口中的属性都是public static final 类型,不可改变
3.接口不能继承其他类,但是可以继承其他接口
4.接口只能被类实现,或被其他接口继承

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值