JavaSE入门级-第七课-面向对象小结
OOP特性回顾
封装,抽象,继承,多态
(展开 略)
OOP关键字回顾
|
关键字 |
作用 |
备注 |
|
class |
声明类 |
public class 需要和文件名一样 |
|
interface |
声明接口 |
接口没有构造器,写常量 和 抽象方法 |
|
abstract |
修饰类 和方法 |
抽象类不能实例化对象 |
|
implements |
实现接口 |
可以多实现 |
|
extends |
继承类 或 接口 |
只能单继承 |
|
this |
表示本类对象 |
可以调用本类构造器 |
|
super |
表示父类对象 |
可以调用父类构造器 |
|
static |
静态全局 |
类级别的共享的属性适合static 类名调用 |
|
final |
终类 常量 |
String 不能被继承 |
OOP访问控制符
见表格
OOP 成员访问
这里的成员我们理解成为 属性和方法,把我一条原则,对象访问普通属性,类名访问静态属性
l 递归调用
经典递归案例 博纳数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, (超难烧脑题)
实现代码为:


设计模式 – 单例
设计模式是一种巧妙的代码写法,类似于简便方法解数学题,在《大话设计模式》这本数中一共提到23种设计模式6中思想,我们先来认识第一种 单例
l 在业务需求中有时后我们需要保证对象只有一个

枚举
jdk1.5之后有了枚举这个类型 enum,枚举可以理解成为固定个数对象的类,有一些类型的数据对象没有那么多个,比如 星期 Week 只有7天就是7个对象,性别 Sex 有男和女
枚举的定义:葫芦娃

客户端运行效果:

(注意:枚举 enum 也是switch语句的表达式内容)
类和类的联系
类和类之间的关系有6种之多,例如 继承 extends 实现关系 implements
l 依赖关系
A类的方法中,包括了B类的对象
l 关联关系
一个类访问了另一个类的属性,将另一个作为全局变量
l 聚合关系
一个类是由很多个类拼凑生成的
l 组合关系
多个类拼凑成一个类时,他们作为材料就称为组合关系
数据缓存
l 缓存是非常好的设计思想,我们来看一个示例
一年四季的气候不同,穿的衣服也不一样,到了夏天我们会穿的凉爽一些,到了冬天我们会穿的保暖一些,当我们需要冬天的衣服,需要去商场买,等到了夏天我们是把衣服挂在衣柜中而不是丢掉,等再到了冬天不用重新买直接拿来穿
l 数据我们可以实现创建好,虽然它会占着一个存储空间,但是需要使用的时候可以直接使用,不需要等待它制造,这种用 空间换时间的思想 就是缓存
缓存举例:在系统设计中常用数据我们可以实现以静态全局变量方式存储好

toString 和 equals
任意写一个类 class B { }类体不写任何内容,当我们创建对象 b. 访问方法时

任然有很多方法可以使用,这是因为B类默认继承了 java.lang.Object
l Object → toString()

只是返回类的名字 和 对应的16进制 hashcode
l Object → equals()

只是把目标对象 和 本类对象this 做 == 运算(引用类型的==运算比较的是hashcode)
l 在真实的业务中,对象的toString我们希望打印的是每个属性的具体值,对象的equals我们希望的是比较每一个属性值的等值关系即比较对象内容,所以我们一般都会重写这两个方法
用户类 UserInfo{uname:”admin”,pwd:”123”},重写后代码为:

内部类
语句可以嵌套,方法可以嵌套,其实类也可以嵌套,写在一个类中的类就是内部类
jdk1.1版本就引入了内部类,其实在企业研发中为了代码的可读性,可重用,可维护,可拓展,会尽量避免使用内部类(学还是要学滴)

图中,包含了3个内部类,有一个是静态内部类,写法和类一样,在调用方面方面有不同
l 普通内部类 通过 对象.内部类名构造器
l 静态内部类 通过 类名.内部类名构造器
(注意:有内部类的类在编译时会生成过个字节码文件)
匿名对象
在java编程中,变量是可以读写访问的一块内存单元,我们通过访问内存变量名,获得该变量所存储的具体值,但有时候对象没有名字,就是匿名对象

上图中 new A2() 没有对象名,只能在构造的时候 使用一次 我们称为匿名对象
匿名类部类
和匿名对象一样,就使用一次,在接口的实现中经常出现:
l new 父类构造器{ // 实现接口 }

(备注:匿名内部类对于初学者 较为 困难,稍作了解 即可)
JAR文件
Java Archive File 是java的压缩文件,俗称 jar包,架包,jar包是java字节码文件的压缩集合
l 使用 命令 java –jar xx.jar 可以执行
l 更多的是使用jar文件所有的java研发人员可以相互调用对方写好的代码
选择一个类右键 → export

可以到处jar文件
选择一个项目右键 → properties → java build path → lib
可以引入一个jar文件
(提醒:开源是伟大的,这让技术能够集思广益,但是开源也是可悲的哎。。。)
练习
l 掌握单例设计模式
l 整理面向对象

浙公网安备 33010602011771号