面向过程和面向对象
都是语言设计的思想(宏观)
程序设计的思路
面向过程(POP)
(具体的步骤)
做一件事情,分析有哪些步骤,一一去实现(函数),这是早期的编程语言设计思路(c语言)
关注的焦点是过程,过程就是操作数据的步骤
面向对象(OOP)
关注的焦点是类:在计算机程序设计过程中,参照现实中的事物,将事物的属性特征,行为特征抽象出来,用类来表示
代码结构:以类为组织单位。每种事物都具备自己的属性和行为/功能
面向对象程序设计时,从宏观上分析程序有哪些功能
然后对功能进行分类,把不同的功能封装在不同的类中(造汽车,发动机·······)
是一种宏观设计,适合解决复杂的问题,代码扩展性强,可维护性高。
类和对象
类
具有相同特征(同一类)事务的抽象描述,例如:人类,树类,公务员类,语言类,是抽象的概念
现根据客观的事务进行抽象(设计为程序),然后由抽象创造出具体,最终使用的是具体
对象
实际存在的该类事物的每个个体,是具体的,因而也称为实例,例如:小明,苹果,魅族20,
类的构造
一,发现类
总结的过程就是抽象化的过程。抽象出猫的特征,可以归纳为一个猫类。
例如:古希腊哲学家柏拉图把人定义为:没有羽毛的两脚直立的动物,其中:”没有羽毛“,”两脚独立“都是特征,都能归类为人类,当然在现在看来这样的定义是片面的
类的声明格式为:[访问权限修饰符][修饰符]class Cat{
}
二,发现类的共有属性(成员变量)
三,定义类的成员方法(行为,动词)
四,使用类创建对象
对象
什么是对象
对象是类的实例,是以类为模板,在内存中创建出的是个实际存在(对象)
如何创建对象
使用new关键字,例如:Cat()-----类的构造方法
Cat miao = new Cat();
new Cat()使用new创建对象,然后调用Car类的构造方法初始化对象=,将右边创建的对象的地址赋值给左边miao变量
这个miao就相当于创建出的变量,可以表示这个对象,可以使用这个miao进行属性操作
例如:miao.name = "咪咪";
类和对象的关系
在Java编程语言中,类和对象是紧密相关的概念。类是对具有相同属性和行为的一组对象进行抽象和封装的模板。类定义了对象的属性和行为,并提供了一种创建对象的方式。
对象是根据类定义的模板创建的实体,它具有类定义的属性和行为。对象是类的实例化,每个对象都是独立的,可以具有不同的属性值。
类在Java中通过关键字class来定义,而对象通过关键字new创建。
下面是一个简单的例子,展示了类和对象的关系:
public class Car {
// 属性
String brand;
String color;
int price;
// 方法
void start() {
System.out.println("汽车启动了");
}
void accelerate() {
System.out.println("汽车加速了");
}
void brake() {
System.out.println("汽车刹车了");
}
}
public class Main {
public static void main(String[] args) {
// 创建Car对象
Car myCar = new Car();
// 设置对象的属性值
myCar.brand = "Toyota";
myCar.color = "Red";
myCar.price = 20000;
// 调用对象的方法
myCar.start();
myCar.accelerate();
myCar.brake();
}
}
在上面的代码中,我们首先定义了一个Car类,它具有品牌、颜色和价格等属性,以及启动、加速和刹车等方法。然后,在main方法中,我们通过关键字new创建了一个Car对象myCar,并为其设置了属性值。最后,通过调用对象的方法,我们可以看到对象执行了相应的行为。
构造方法
类的构造方法
特点:
- 构造方法的名称必须与类名完全相同。
- 构造方法没有返回类型,包括void。
- 构造方法可以重载,即一个类可以有多个构造方法,只要它们的参数列表不同即可。
作用:
- 初始化对象的属性,让对象在创建后就具有合适的初始值。
- 在对象创建过程中执行一些必要的操作。
public class Car { String brand; String color; int price; // 无参构造方法 public Car() { brand = "Unknown"; color = "Black"; price = 0; } // 带参构造方法 public Car(String brand, String color, int price) { this.brand = brand; this.color = color; this.price = price; } // 方法 void start() { System.out.println("汽车启动了"); } void accelerate() { System.out.println("汽车加速了"); } void brake() { System.out.println("汽车刹车了"); } } public class Main { public static void main(String[] args) { // 调用无参构造方法创建对象 Car car1 = new Car(); // 调用带参构造方法创建对象 Car car2 = new Car("Toyota", "Red", 20000); // 输出对象的属性值 System.out.println("car1: " + car1.brand + ", " + car1.color + ", " + car1.price); System.out.println("car2: " + car2.brand + ", " + car2.color + ", " + car2.price); // 调用对象的方法 car1.start(); car2.accelerate(); } }