Day15 类关系、设计模式

面向对象

内部类:

类中的类的声明;当一个事物内的一个部分需要一个结构进行描述,一般只是为了让外部类使用用,且可以访问外部类中私有化属性

分类

1.成员内部类/普通内部类

等同看作成员变量,不需要static修饰;可以使用权限控制修饰符;可以使用权限控制符;内部不能有静态声明,可以直接访问外部类的所有属性;内部类类名:外部类$内部类

2.静态内部类

等同看作静态变量;可以使用权限控制符;可以声明所有属性,静态和成员都可以;可以直接访问外部类的静态属性,不能直接访问成员属性(通过对象跟方法)

3.局部内部类

等同看作局部变量,不能有静态声明,不能使用static修饰符;如果外部方法是静态方法,则内部类不能直接访问外部类的成员属性;如果是成员方法,可以直接访问外部类所有属性

4.匿名内部类

方法调用的时候,需要传入一个类的对象,可以传入一个匿名内部类;一般该对象是接口的实现类对象,匿名内部类相当于是子类,可以使用supre等关键字;会自动创建一个对象传入;好处:少定义一个类;缺点:无法重复使用;语法:方法(new 父类/接口(){类体})

设计模式

一套呗多人知晓,分类编目的,反复使用的,代码设计经验的总结.目的是为了代码的重用,更容易被他人理解,可读性更高.

1.单例模式

实例化多次得到同一个对象或结果;让某个对象制备实例化一次

步骤

因为要控制数量只有一个,权力就不能给用户

1.不能让用户创建对象:不让用户访问构造方法(构造方法私有化)

2.只创建一个给用户:给用户一个静态方法来获取对象(成员方法需要调用对象,获取对象又要调用方法,互相矛盾)

3.存储对象的变量:存储是为了重复使用,为了保证对象只有一个(创建一个静态变量)

局部:临时性,方法执行完就不存在了,下次调用又重新初始化

成员:静态方法中不能操作成员变量

静态:和类相关,不会消失

2.懒/饿汉模式(根据创建时机分类)

1.懒汉模式:用到的时候创建对象,也就是第一次获取的时候

2.饿汉模式:类加载的时候立即创建

区别

1.内存角度:懒汉省内存,用的时候才创建,被称为懒加载/迟加载

                   饿汉浪费内存,不用就开始创建对象

2.线程安全角度:饿汉是在类加载阶段就初始化,多线程下没问题,类只会加载一次

                          懒汉在多线程并发情况下不行,可能创建多个对象,但是可以通过双重校检加锁解决

一般我们使用懒汉,多线程也一样(通过双重校检加锁解决)

3.工厂模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值