面向对象
-
面向对象就是把构成问题的事物分解成一个个对象,建立对象不是为了实现一个步骤,而是为了描述某个事物在解决问题中的行为。
-
类是面向对象中的一个很重要的概念,因为类是很多个具有相同属性和行为特征的对象所抽象出来的,对象是类的一个实例。
类与对象
要了解对象,首先要明白类与对象的关系、特征和组成结构
类表示一个共性的产物,是一个综合的特征,而对象,是一个个性的产物,是一个个体的特征。 (类似生活中的图纸与实物的概念。)
**类与对象的关系:**类必须通过对象才可以使用,对象的所有操作都在类中定义。
举个例子:定义一张车的类
// 定义类名Car
public class Car {
// 定义属性
String brand;//品牌
String color;//颜色
int seat;//座位数
public Car() {
}
// 定义方法(行为)
void go(){
System.out.println("汽车在行驶...");
}
void stop(){
System.out.println("汽车停下来了...");
}
void com(){
System.out.println("汽车在加油...");
}
而对象我们也同样可以用车来举例
// 创建一个Car类的对象(实例化)
Car car = new Car();
// 设置对象的属性
car.brand = "奔驰";
car.color = "天蓝色";
car.seat = 5;
System.out.println(car.brand + car.color + car.seat);
// 执行对象行为(调用对象的方法)
car.go();
car.stop();
car.com();
类由属性和方法组成:
- 属性:就相当于人的一个个的特征
- 方法:就相当于人的一个个的行为,例如:学习,考试,休息
一个类要想真正的进行操作,则必须依靠对象,对象的定义格式如下:
类名称 对象名称 = new 类名称() ;
如果要想访问类中的属性或方法(方法的定义),则可以依靠以下的语法形式:
访问类中的属性: 对象.属性 ;
调用类中的方法: 对象.方法(实际参数列表) ;
例如猜数游戏,就能体现一个属性与方法的分配:
随机产生一个数字(1~100),猜测并输入一个数字,判断是否猜中,猜中就结束,如果没有猜中给出提示(猜的数字比生成的数字大了还是小了),继续猜数。
(思考过程:
需要哪些对象?对象列出来,再判断是否需要实现类
游戏对象(人)
每个对象有哪些属性和行为?
GuessNum属性:生成数字
猜的数字
行为:
产生随机数
接受输入
判断结果
提示
类的注意事项:
- 类必须编写在.java文件中;
- 一个.java文件中,可以存在N个类,但是只能存在一个public修饰的类;
- java文件的文件名必须与public修饰的类名完全一直;
- 同一个包中不能有重名的类;
面向对象与面向过程的优缺点
初学java我们都要了解一个过程,然后明白编译的思路,所有通过面向对象与面向过程的区分也能增加对面向对象理解。
面向过程
优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
缺点:没有面向对象易维护、易复用、易扩展。
面向对象
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护。
缺点:性能比面向过程低。
总结
面向对象:其实对象是类的抽象概念 ,也就是起一个名字,我们可以按照各种不同的功能,方法,模块,业务逻辑等分别起名,分别归类,使用此对象名调用该对象所代表的类中的不用函数也就是代码块,其中就是我们分开写的各种不同的方法,业务了逻辑等。
面向过程:其实就是在一个类中将所有的模块、功能、业务逻辑等按照执行顺序依次从上到下的书写并执行。