Java基础之类和对象
前面我们曾经提到过,万物皆是对象,Object!人是一个对象,狗是一个对象,桌子、车、表格、一首诗等等都可以看成是一个对象。
对象有属性,比如人有年龄,名字,房子等等。也有行为,比如会跑、会说话、会吃等等这就是对象特有的行为,行为在Java中对应的是方法。
Java就是面向对象编程,也就是说,Java的代码结构就是创建一个对象,我们可以设置和获取这个对象的属性,也可以调用对象的行为方法,让对象去做某个行为。
而把多个对象的共同行为,抽象到一起,那就是类。比如人和狗都属于动物,那么动物就可以作为一个类。车也可以是一个由各种品牌组成的类。
所以类定义了对象,类是创建对象的模板。类定义了一组属性(变量)和行为方法(函数),这些属性和方法描述了一个对象的结构和行为。我们可以根据类来创建对象。
在Java中,你可以使用class关键字来定义一个类。对象则是通过使用new关键字和类的构造函数来创建的。
/**
* 这就定义了一个car类
*/
public class Car{
/**
* 车有属性: 品牌名
*/
private String brand;
/**
* 车有属性: 颜色
*/
private String color;
// 构造函数 没个类都应该最少有一个构造函数,用来构造对象,如果没写,Java默认会有一个无参构造
public Car(String color, String brand) {
this.color = color;
this.brand = brand;
}
/**
* 车有行为: 可以跑
*/
public void run(){
System.out.printlt("这是一辆" + color + "色的" + brand + "汽车在跑");
}
}
以上代码就定义了一个车的类,接下来我们实例化一辆红色的宝马车
// 创建对象
public class Main {
public static void main(String[] args) {
// 这一句实例化了一个对象
Car myCar = new Car("红色", "宝马");
// 这一句是对象调用了它的方法,宝马车跑。
myCar.run();
}
}
这就是Java中的类和对象,不管什么东西都可以看作是一个对象,使用类来定义这个对象的属性和方法,使用的时候用类的构造函数实例化一个对象,就能让对象来进行各种操作。
面向对象编程有助于提高代码的可重用性和可维护性。
面向对象编程与面向过程编程
面向对象编程强调将数据和操作数据的函数封装在一起形成对象。它通过封装、继承、多态等机制来组织代码,使得程序更加模块化、可维护和可扩展。
而面向过程编程侧重于将程序分解为一系列的函数或过程,通常使用流程控制语句来控制每个函数或过程完成一个特定的任务。
面向对象耦合性低,因为它把一些功能模块化的封装了起来,代码更灵活易于修改。
而面向过程就紧密关联,不易于维护,适合干一些简单的场景。
场景示例:
假设我们正在编写一个程序来模拟一个简单的咖啡机。
在面向过程编程中,我们会关注实现咖啡机功能的具体步骤。程序可能会按以下步骤来组织:
开始:启动咖啡机。
选择咖啡类型:让用户选择要冲泡的咖啡类型(例如,美式、拿铁、卡布奇诺)。
磨豆:根据选择的咖啡类型,磨相应量的咖啡豆。
加热水:将水加热到适当的温度。
冲泡咖啡:将热水通过咖啡粉。
添加其他成分:如果是拿铁或卡布奇诺,还需要加热牛奶并泡沫。
结束:关闭咖啡机。
在面向过程的编程中,程序是由一系列按照特定顺序执行的函数或步骤组成。如果我们要改变咖啡的制作过程,比如添加一个新的咖啡品种,我们可能需要修改大部分的代码。
而若是面向对象编程,我们会将咖啡机的各个部分抽象成对象,每个对象都有自己的属性和行为。
例如,我们可以有以下对象:
咖啡机(CoffeeMachine):负责启动和关闭,以及协调整个冲泡过程。
咖啡豆(CoffeeBean):包含有关咖啡豆类型的信息。
热水器(WaterHeater):负责加热水。
咖啡滤篮(FilterBasket):负责装咖啡粉和冲泡咖啡。
牛奶加热器(MilkHeater):负责加热和泡沫牛奶(如果需要)。
如果我们想要添加一个新的咖啡品种,我们只需要添加一个新的对象或者修改现有的对象,而不需要改变整个程序的结构。
在面向对象的编程中,每个对象都可以独立于其他对象存在,并且可以重用,易于维护和修改。
这就是Java的面向对象编程中,类和对象的概念,使用class关键字来定义一个类。使用new关键字和类的构造函数来创建对象。
在面向对象编程(OOP)中,类(Class)和对象(Object)是两个核心概念。它们是构建和组织代码的基本单元,允许程序员以模块化和可重用的方式来思考和设计软件。