day14

Day14

  1. 内部类
    1.1 概述
    当一个事物(人体)的内部,还有一个部分(心脏)需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务(我心脏只为我提供服务),那么整个内部的完整结构最好使 用内部类

在Java中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者 称为外部类。
Inner class一般用在定义它的类或语句块之内,在外部引用它时必须给出完 整的名称

1.2 分类

  • 变量 :
  •  成员变量 : 			成员内部类
    
  •  静态变量 : 			静态内部类
    
  •  局部变量 : 			局部内部类
    
  •  形参和实参变量 : 		匿名内部类
    

1.3 成员内部类 :

  •  1 可以等同看做成员变量
    
  •  2 成员内部类中不能有静态声明
    
  •  3 成员内部类中可以直接访问外部类所有的属性
    

(通过外部类对象创建成员内部类对象)

1.4 静态内部类

  •  1 可以看做静态变量 
    
  •  2 静态内部类中可以声明所有东西
    
  •   3 静态内部类中,不能直接访问成员数据,需要有对象才行
    

New 外部类对象 进行访问
访问当前类的静态属性属性的时候,类名可以省略(外部类)
外部类.内部类.静态
1.5 局部内部类
局部内部类等同于局部变量
注意 : 局部内部类 在访问外部方法中的局部变量的时候需要加final修饰(1.8之前),从1.8开始 final可以省略,但值依然不能更改(被final修饰)

  • 局部内部类中,不能有静态声明

  • 如果是 成员方法中 的局部内部类,可以访问外部类中所有的属性

  • 如果是 静态方法中 局部内部类, 不可以直接访问外部类的成员属性
    1.6 匿名内部类
    匿名内部类 : 指在方法调用时,实参需要传入某个接口对象的时候,不传入对象,传入一个匿名的实现类

  • 如果方法定义形成 一般是个接口,那么调用的时候,就需要传入其实现类的对象

  • 但是可以不实现这个接口,不传递实现类对象,传递一个匿名内部类,这个类,没有名字,不能复用

  • 默认的匿名内部类类名 : 外部类类名$1 一次类推

  • 那么既然是没有名字的类,那么我们自然无法创建对象,但是传入匿名内部类的 时候回自动创建一个对象

  1. 设计模式
    2.1 概述
    前人为解决某些特定问题,而设计出的一些很完美的思路。不是完全特定的语法结构,主要体现思路。 开发中,用到了一些设计模式的话,(就等于使用了他人总结的经验成果,)可以避免很多问题
    2.2 单例模式
    目的 : 让某个 类 只 创建 一个 对象
    1 构造方法私有化(创建对象的权限归自己)
    2 创建一个公共的静态的方法用来返回当前类的对象,并且保证只实例化一次(提供对象)
    3 创建一个私有化的静态变量,用于存储当前类的对象(变量的类型,是当前类类型)
    根据对象不同的创建时机,分为两种情况
  •  	1 懒汉模式 : 第一次获取对象的时候,再创建对象		(获取对象时才创建)
    
  •  	2 饿汉模式 : 加载类的时候,就创建对象		((构造方法)加载完直接创建)
    

2.3 工厂模式

  • 工厂模式 : 把创建对象的语句单独封装成一个工厂模式

这样 所有用到这个对象的地方,都去工厂中获取,把类之间强依赖关系变弱,灵活度更高

内聚:模块内的功能联系。好的内聚模块应当恰巧做一件事。
耦合性:模块与模块之间关联程度的度量。

高内聚,低耦合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值