抽象类 抽象方法 接口 类部类 匿名类部类 设计模式之单例模式(懒汉模式及饿汉模式)

---恢复内容开始---

抽象类  关键字  abstract

  不能被实例化(创建对象),可通过类名调用静态方法

  子类继承抽象类必须重写父类的所有抽象方法,然后用多态调用

接口:关键字 interface   类名 implements 接口名

1.接口中只能有抽象方法,并且不能被实例化,通过多态调用

2.接口与接口之间的关系: 继承关系(可以多继承);

类部类: 在类中定义的类

  创建类部类对象    外部类名.内部类名  对象名 = new 外部类名().new内部类名()

匿名类部类:

  在写匿名内部类前,必须先写一个方法  格式  new 类名/接口名

  new 类名  表示在new对象时继承该类

  new接口名  表示在new接口时实现了该接口,并重写抽象类的抽象方法.

作业:1.练习类部类中私有成员变量,构造方法,类时调用内部函数

  2.匿名类部类练习.

Java 设计模式之单例模式

饿汉模式:

public class Demo1 {
    private Demo1(){//单例模式中的饿汉模式
        
    }
    private static final Demo1 single = new Demo1();
    public static Demo1 getDemo1(){
        return single;
        
    }
    public void  print(){
        System.out.println("nothing is possible");
    }
}
public class Main {//单例模式中的懒汉模式测试
    public static void main(String[] a){
        Demo sc = Demo.getDemo();
        System.out.println(sc);
        Demo sc1 = Demo.getDemo();
        System.out.println(sc1);
        Demo sc2 = Demo.getDemo();
        System.out.println(sc2); //测试通过
        sc.show();
        Demo1 ss1 = Demo1.getDemo1();//单例模式饿汉模式测试通过
        System.out.println(ss1);
        Demo1 ss2 = Demo1.getDemo1();
        System.out.println(ss2);
        Demo1 ss3 = Demo1.getDemo1();
        System.out.println(ss3);
        ss3.print();
    
        
    }
}

个人见解:通过私有化Demo1类构造方法,使不能再本类之外创建对象,并设置静态公共访问接口(getDemo1)进行对象的创建,通过关键字final对Demo1对象的引用进行赋值,并return.后期主函数通过类名进行调用

懒汉模式

public class Demo {//单例模式中的懒汉模式
    private Demo(){
        
    }
    private static Demo single = null;
    public void show(){
    
        System.out.println("这是一个show方法");
    }
    public static Demo getDemo(){
        if(single == null){
            single = new Demo();
        }
        return single;
    }

}

---恢复内容结束---

猜你喜欢

转载自www.cnblogs.com/lboy1205/p/9276783.html