一.设计模式之单例模式
*饿汉式/醉汉式 步骤:
- 创建私有化构造方法
- 私有的 静态的 属于本类类型的对象
- 公共的 静态的返回本类对象的方法
// 醉汉式/饿汉式
class Moon{
// 1 私有化构造方法
private Moon(){}
// 2 创建一个私有的静态的属于本类类型的对象
private static Moon only = new Moon();
// 3 提供一个公共的 静态的 返回本类对象的方法
public static Moon getOnly(){
return only;
}
}
*懒汉式 尚不完善 需要枷锁
.synchronized 枷锁
public class TestSingle2{
public static void main(String[] args){
}
}
// 懒汉式-
class Moon{
private Moon(){}
private static Moon only;// 0xA
// 一个资源 getOnly()
// 张三Moon.getOnly() 0xA 时间片 3ms
// 李四Moon.getOnly()0xA 时间片 5ms
// 张三 李四 李四 张三
public static synchronized Moon getOnly(){
if(only == null){
// 时间片耗尽 张三====
only = new Moon();// 0xA
}
return only;// 0xA
}
}
二.java中的四大类型
1.class类
2.enum 枚举类
3.interface 接口类
4.@interface 注释类
四大类型都能产生对应的.class文件
三.接口类 interface
接口中注意的点
接口中的注意点1. 接口中的属性默认有 public static final 修饰2. 接口中的方法默认有 public abstract 修饰3. 接口不能直接创建对象?不可以。防止调用抽象方法接口可以间接创建对象【创建的同时 + 所有抽象方法全部实现】
interface USB{
void connect();
}
// USB uu = new USB(); // 报错
main():
// 匿名类
// 一次性
USB uu = new USB(){
@Override
public void connect(){}
};
面试题:接口和抽象类的区别
1 类型不同接口 interface抽象类 class2 属性不同接口中的属性默认有 public static final 修饰抽象类中的属性都是普通属性3 方法不同接口中的方法都是抽象方法jdk8 . 0 之后接口中允许出现普通方法 但是前面必须有 static / defaultjdk9 . 0 之后接口中允许出现私有方法抽象类中既可以出现普通方法也可以出现抽象方法4 继承关系不同接口:多实现 多继承抽象类:单根继承
注意点
class 和 class => extends 单
class 和 interface => implementsinterface 和 interface => extends 多
接口简单使用代码
public class Exec1{
public static void main(String[] args){
插座 cc = new 插座();
洗衣机 xx = new 洗衣机();
cc.通电(xx);
}
}
/**
电器和插座的关系
1 制定规范 【电器的规范】
属性:220v
方法:open() close()
2 找到类型实现上面的规范 洗衣机 冰箱
3 找到类型使用上面的规范 插座-供电(电器)
*/
interface 电器{
// public static final
int v = 220;
// public abstract
void open();
void close();
}
class 洗衣机 implements 电器{
@Override
public void open(){
System.out.println("打开洗衣机");
}
@Override
public void close(){
System.out.println("关闭洗衣机");
}
}
class 插座{
public void 通电(电器 dd){
dd.open();
System.out.println("插座通电");
dd.close();
}
}