1.面向过程
面向过程的程序设计思路(procedure -Oriented Programming),简称POP。
(1)思想:主要是操作数据的步骤,如果整过过程中重复出现一个步骤可以运用一个方法,使用方法可以将重复步骤简化,大大减小程序冗杂,简化程序,便于维护。
(2)典型语言:C语言。
(3)代码结构:以函数为组织单位。
(4)是一种“执行者思维” ,适合解决简单问题。 分析出解决问题所需要的步骤,然后把步骤一步一步实现。 扩展能力差,后期维护难度较大。
2.面向对象
面向对象的程序设计思想( Object Oriented Programming),简称OOP。
(1)主要是类,在计算机程序设计过程中,参照现实中事物,将事物的属性特 征、行为特征抽象出来,用类来表示。
(2)典型的语言:Java、C#、C++、Python、Ruby和PHP等。
(3)代码结构:以类为组织单位。每种事物都具备自己的属性和行为/功能。
(4)是一种设计者思维,适合解决复杂问题。代码扩展性强、可维护性高。
(5)面向对象设计程序时从宏观角度分析程序有哪些特点,然后不同功能进行分类封装在不同的类中,具体仍然使用面向过程,二者相辅相成。
3.面向过程和面向对象的区别
举例:人把大象装进冰箱。
(1)面向过程:1.打开冰箱。2.把大象装进冰箱。3.关闭冰箱门。
(2)面向对象:人类{
打开(冰箱){
冰箱.打开();
操作(大象){
大象.进入(冰箱);
}
关闭(冰箱){
冰箱.(关门);
}
}
冰箱类{
开门(){};
关门(){};
}
大象类{
进入(冰箱){};
}
}
4.类和对象
(1)类:具有相同特征的事物的抽象描述,是抽象的、概念上的定义。
(2)对象:实际存在的该类事物的每个个体,是具体的,因而也称为实例。
(3)面向对象具体实现
第一步:发现类。
第二步:定义类的成员变量(属性,名词)。
第三步:定义类的成员方法(行为,动词)。
第四步:创建一个具体对象。
(4)对象的创建和使用
Car bm= new Car(); Car bm:使用Car类作为类型声明一个变量bm. new Car():使用new 创建对象,然后调用Car类的构造方法初始化对象. = :将右边创建的对象地址赋给左边的bm变量。
同一类的每个对象有不同存储空间。 对象是类的一个实例,必然具备该类事物的属性和行为(即方法)。 使用对象名.属性或对象名.方法的方式访问对象成员(包括属性和方法)。
举例: 类 => 抽象概念的人;对象 => 实实在在的某个人
(5)构造方法
构造方法名与类名相同,且没有返回值,且不需要使用void修饰。
作用: 在构造方法中为创建的对象成员变量初始化赋值。
特点: 每个类都有构造方法,如果没有显式地为类定义构造方法,Java将会为该类提供一个默 认无参构造方法,但是只要在一个Java类中定义了一个有参构造方法后,默认的无参构造方法 会失效。 一个类可以有多个构造方法。
(6)方法重载是指多个方法的方法名相同,但各自的参数不同;
重载方法应该完成类似的功能,参考String的indexOf();
重载方法返回值类型应该相同。
在一个类中,我们可以定义多个方法。如果有一系列方法,它们的功能都是类似的,只有参数有所不同,那么,可以把这一组方法名做成同名方法。
(7)对象与引用
Java语言中除基本类型外的变量类型都称之为引用变量.
Java中的对象是通过引用对其操作的.
举例:
class Car{
String color;
String name;
String model;
}
1)右边的“new Car()”,是以Car类为模板,调用Car类的构造函数,在堆空间里创建一个Car类对象。
2)左边的“Car car”创建了一个Car类引用变量。所谓Car类的引用,就是以后可以用来指向Car对象的对象引用。
3)”=”操作符使对象引用指向刚创建的那个Car对象。