4.1 概述
面向过程:着重完成整个过程的具体步骤。
面向对象:着重谁要做什么,然后再按具体的类与对象,逐步细化。
示例:把大象塞进冰箱分几步?
面向过程:
1. 把冰箱门打开
2. 把大象塞进去
3. 把冰箱门关上
面向对象:
1. 建立三个主体,我,冰箱,大象
2. 我操作冰箱,过程是把冰箱打开
3. 我操作大象,运输大象并把它塞入冰箱
4. 我操作冰箱,过程是把冰箱关上
特点:少量步骤,面向过程更简洁,面向对象更明确主体责任,适合于操作繁杂,处理事务多的交互系统。
4.1.1 类
就是根据需要,对事务进行类别的划分。比如车可以分为:火车、汽车。火车对应于可以大量远距离运送资源和载人,汽车更适用于少量人短途运送。两者的运力和速度根据类别的不同有所区别。
实例化:类创造对象的过程。比如人是类,人当中的你我就是具体的对象。母亲生娃过程就是实例化。
封装:把数据和行为放入同一个类挡住,并对外界做出适当隐藏,阻止外界对对象进行不合法的操作。类似保管你家里钥匙的人,只有特定的几个。其他人不能直接进入你家中,只有通过有钥匙的主人(你的家人等)间接拜访。
继承:保留父类的行为,同时进行扩展。更类似于继承父辈财产,再创造新的财富的过程。
4.1.2 对象
三个主要特性(不会考,其他书中没有这个概念)
行为:能进行什么操作,用什么方法
状态:当前对象的形态特点,无法作为唯一标识,但可以作为筛选对象的方式
ID:两个状态完全相同的对象,不能称之为同一个对象。比如有两个人,他们长得非常像,但是不能称之为一个人,因为他们的身份证号不一样。
4.1.3 识别类
1. 什么东西可以作为类?
在需求中的名次,可以作为类。比如上面的“把大象塞进冰箱”,它其实主语是人,“人把大象塞进冰箱”,人、大象、冰箱,就可以作为类。
2. 哪些可以作为行为?
主动操作者作为类,主动的操作动词可以放入类当中。如“塞”。就可以放如人对应的类中,作为其中的一种操作。
3. 哪些可以作为状态?
操作的限定条件。特定情况可以进行特定操作,比如“人把大象塞进冰箱”中的冰箱。关闭状态下的冰箱,只支持开启,开启状态的冰箱,能塞东西和关闭。这个状态就冰箱门的开启、关闭状态。
4.1.4 类的关系
依赖:操作的主体,有关系,但是不强烈。比如“人把大象塞进冰箱”,是人这个类进行操作,操作大象和冰箱。但是大象和冰箱两个主体要由人来操控。
聚合:不同的东西合起来构成。比如一个班级有黑板,有粉笔,有讲台,有老师,有学生。
继承:近似于扩展。比如图形有面积,有周长。圆是一种图形,在图形的基础上,扩展了半径的概念。
4.2 使用现有的类
比如前面的字符串,StringBuilder 类,就是一种具体的类型。
4.2.1 对象与对象变量
格式:
type varriableName = new type();例如:
StringBuilder sb = new StringBuilder();所有对象都拥有一个特殊的值:null,代表没有任何指代,没有找到的意思。没有实例化的对象,也可以优先赋值为null,例如:
public class Main {public static void main(String[] args){
StringBuilder sb = null;
Random r= new Random();
int x = r.nextInt();
if(x%2==0){
sb = new StringBuilder("even");
}else{
sb = new StringBuilder("odd");
}
System.out.println(sb.toString());
}
}
对象和对象变量区别:对象可以只定义对象名,而不进行初始化,这种情况只能称之为对象变量,而不能称之为对象。对象变量可以初始化对象,也可以使用一个对象变量为对象变量进行赋值操作。对象变量只是引用对象,而非实际包含对象。
实际上,对象变量相当于绑气球的线。同一根线只能绑一个气球,同一个气球却可以使用多跟线去捆绑。
null值对象不能调用其方法:
public class Main {public static void main(String[] args){
String s = null;
System.out.println(s.length());
}
}
系列内容:
《Java 核心技术 卷1》 笔记:第一章 Java程序设计概述
《Java 核心技术 卷1》 笔记:第二章 Java程序设计环境
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(1)
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(2)
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(3)
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(4)
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(5)
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(6)
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(7)大数处理、数组、多维数组、控制台传参
喜欢的话,点个赞吧~!平时做题,以及笔记内容将更新到公众号。
关注公众号,互相学习:钰娘娘知识汇总