面向过程: 注重细节。 先找到过程的起点,然后定义相关的函数,按照步骤一步步
最终达到过程的终点。
面向对象: 在面向过程的基础之上,按照功能 将系统划分为若干个模块,将不同的功能
赋予某些实体(客观存在的事物)来完成相应的功能。
完成的时候不需要注重内部的实现细节。
面向对象是对客观世界的真实模拟。
万物皆对象。
类:
形成: 对客观世界存在的实体进行高度的概括 抽出像的部分,形成类。
属性定义成员变量
行为对应类当中方法:
作用: 类可以产生对象。
抽象: 对实体的高度概括,抽取出相似的部分。
实体(对象): 就是客观存在的事务。
类和对象的关系:
类是对象抽象, 是类的模板。
对象是类的实体,实例化产物。
二: 设计一个类:
Dog Cat ----> Animal
属性---->类型的成员变量。
行为----->方法。
三:对象的产生:
语法:
类名 类类型的变量 =new 类型();
Animal an=new Animal();
四:面向对象的基本特征(面试问题)
(0)抽象: 对某一类实体进行高度的概括,抽取出相似的部分。
(1) 封装: 将私密的数据或者是功能隐藏起来,对外提供公共的访问接口。
(2)继承: 一个类A获得了一个类B的除了私有属性和构造方法之外的全部内容。
(3)多态: 同一种事物的多种表现形态。
五: 面向对象软件的开发过程:(了解)
(1)分析:(需求分析师) 面向对象的分析 (OOA)
(2)设计: (设计)面向对象的设计(OOD)
(3)编码:(工程师)面向对象的编码(OOP)
(4)测试: (测试工程师)面向对象的测试(OOT)找bug
(5)运维:(运维工程师)对系统维护(OOSM)
六: 匿名对象:
new 类名().方法();
优点:不需要给对象起名字,使用起来比较方便。
缺点:该对象的方法只能被调用一次。
匿名对象的使用场景:
a:当对象的方法只被调用一次的时候,可以使用。
b:匿名对象可以作为方法的实际参数进行传递。
七:构造方法:(构造器)
1:语法:
public 类名(){//定义一个无参数的构造器
}
//定义有参数的构造器:
public 类名(参数){
参数可以给实例变量进行赋值;
}
2;作用: 给当前的对象进行初始化。
3:方法方法和普通方法的区别:
(1)写法上不同,构造方法没有返回类名,构造器的名称必须和类相同。 普通方法的名称可以自定义。
(2)运行上的不同:
普通方法,静态的可以通过类名调用。 非静态方法,通过对象调用。
构造方法:在创建对象时,会被自动调用。
构造方法:只有在对象创建的时候,被执行一次。
普通方法: 可以通过对象多次调用。
4: 构造方法什么时候定义呢?
当创建的对象需要对其进行初始化时,此时可以提供构造器。
5:构造器的细节:
(1)在默认情况下,系统会给类提供一个无参数的默认构造器。
(2)当类中手动提供了一个有参数的构造器,此时系统就不在提供无参数构造器。
建议:在手动提供有参数构造器之后,再次提供一个无参数的构造器。
八: 构造代码块: (动态块)
1: 语法:
{
....语句:
}
2:作用: 给所有的对象进行初始化。
3:区别: 动态块和构造器的区别:
a: 构造器的作用是给当前的对象,具体的某一给对象进行初始化。
b: 动态块,在创建对象之前被执行,给所有对象都进行初始化。
4:动态块和构造器的执行顺序:
动态块优先于构造器执行。
九:this关键字:
作用:
(a):形式是区分了成员变量和形式参数重名的问题。
this代表当前对象的引用。
简单理解: 那个对象调用了这个方法,这个this就是那个对象。
(b)用在本来构造器的第一条语句处,表示对其他构造器的调用。
形式: this([参数]);
作用:创建类
属性
行为
有参数的构造器,(无参数)
动态块
this 分区成员变量和形式参数
this去调用其他构造器