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  整理面向对象

 

posted @ 2021-07-18 08:58  二娃千里眼  阅读(46)  评论(0)    收藏  举报