面向对象编程(OOP)概念,如类、对象、继承、封装、多态
概念:面向对象编程(Object-Oriented Programming,简称OOP)是一种程序设计范型或编程范式。这种范式使用“对象”来设计应用程序和系统的各个部分。在面向对象编程中,万物皆对象,程序被视作一系列对象的集合,这些对象通过消息传递来交互。对象包含数据和操作这些数据的方法(函数),它们被封装在一起,作为一个整体被外部世界所使用。
-
类(Class)
类是一个模板,它描述了一组具有相同属性和方法的对象的集合。换句话说,类定义了对象应该有的特征(属性)和行为(方法)。在 Java 中,类使用关键字 class 声明。
例:
public class Animal {
// 属性(字段)
String name;
int age;// 方法
void eat() {
System.out.println("Animal is eating");
}
} -
对象(Object)
对象是类的实例。在 Java 中,我们使用 new 关键字来创建对象。每个对象都具有类所定义的属性和方法。
例:
Animal dog = new Animal(); // 创建一个 Animal 类的对象 dog
dog.name = "Buddy"; // 访问并设置对象的属性
dog.eat(); // 调用对象的方法 -
继承(Inheritance)
继承是面向对象编程中的一个重要概念,它允许我们定义一个类(称为子类或派生类)继承另一个类(称为父类或基类)的特征和行为。子类可以继承父类的属性和方法,也可以添加自己的属性和方法。
例:
public class Dog extends Animal { // Dog 类继承自 Animal 类
void bark() {
System.out.println("Woof!");
}
} -
封装(Encapsulation)
封装是隐藏对象的属性和实现细节,仅对外提供公共访问方式。封装通常通过提供 getter 和 setter 方法来实现对属性的访问和修改。封装的主要目的是增强代码的安全性和可维护性。
例:
public class Animal {
private String name; // 私有属性,只能在本类中被访问// getter 方法
public String getName() {
return name;
}// setter 方法
public void setName(String name) {
this.name = name;
}
} -
多态(Polymorphism)
多态是面向对象编程的三大特性之一,它允许不同的对象对同一消息做出不同的响应。在 Java 中,多态主要有两种形式:方法的重写(Override)和方法的重载(Overload)。
方法的重写:子类可以重写父类的方法,这样当使用子类对象调用该方法时,将执行子类中的版本,而不是父类中的版本。这是运行时多态的体现。
方法的重载:在同一个类中,可以有多个同名但参数列表不同的方法。当调用方法时,将根据提供的参数列表来确定执行哪个版本。这是编译时多态的体现。
例:
public class Animal {
void makeSound() {
System.out.println("Animal makes a sound");
}
}
public class Dog extends Animal {
// 重写父类方法
@Override
void makeSound() {
System.out.println("Woof!");
}
}
在上面的例子中,当我们创建一个 Dog 对象并调用其 makeSound() 方法时,将执行 Dog 类中的版本,而不是 Animal 类中的版本。