Java面向对象(基础)- 三大特性
大约 2 分钟JavaJavaSE
Java面向对象基础
一、面向对象概述
面向对象编程(Object-Oriented Programming,OOP)是一种流行的编程范式,它提倡将程序设计组织为相互作用的对象集合,每个对象都包含了数据(属性或状态)以及处理数据的方法(行为)。在Java中,面向对象的主要特点包括:
1. 封装 (Encapsulation):
封装是将数据和操作数据的方法捆绑在一起,并对外隐藏内部细节,仅通过公开接口访问数据或执行操作。例如:
public class Car {
// 封装数据字段(私有)
private String brand;
private int year;
// 提供公共方法来设置和获取数据
public void setBrand(String brand) {
this.brand = brand;
}
public String getBrand() {
return brand;
}
public void setYear(int year) {
this.year = year;
}
public int getYear() {
return year;
}
2. 继承 (Inheritance):
继承允许一个类(子类)从另一个类(父类)继承特性并扩展它们。子类自动拥有父类的所有非私有属性和方法,还可以定义自己的特性和方法。
public class SportsCar extends Car {
private boolean convertible;
public SportsCar(String brand, int year, boolean isConvertible) {
super(brand, year); // 调用父类构造器
this.convertible = isConvertible;
}
public boolean isConvertible() {
return convertible;
}
}
3. 多态 (Polymorphism):
多态意味着一个接口可以有多种形态,即同一消息可以根据发送给的不同对象产生不同的行为。Java中主要是通过接口实现和方法重写来体现多态性。
public interface Driveable {
void drive();
}
public class Car implements Driveable {
// 实现Driveable接口
@Override
public void drive() {
System.out.println("Driving the car...");
}
}
public class Bicycle implements Driveable {
// 实现Driveable接口
@Override
public void drive() {
System.out.println("Riding the bicycle...");
}
}
public static void main(String[] args) {
List<Driveable> vehicles = new ArrayList<>();
vehicles.add(new Car());
vehicles.add(new Bicycle());
for (Driveable vehicle : vehicles) {
vehicle.drive(); // 显示多态行为
}
}
二、类与对象
类 (Class) 是Java中定义对象蓝图的模板。它描述了一组相关属性和方法。
对象 (Object) 是类的一个实例,具有类中定义的状态和行为。
实例化 (Instantiation) 创建对象的过程,如
Car myCar = new Car();
构造方法 (Constructor) 用于初始化对象,具有与类同名且无返回类型的特殊方法。
public class Car {
// 构造方法
public Car(String brand, int year) {
this.brand = brand;
this.year = year;
}
}
三、静态成员
静态域 (Static Fields) 在类级别上定义,所有类实例共享同一个静态变量。
public class Car { public static int totalCars = 0; // ... } // 使用 Car.totalCars++;
静态方法 (Static Methods) 可以直接通过类调用,无需实例化对象,不能访问非静态成员。
public class Car { public static void increaseTotalCars() { Car.totalCars++; } } // 使用 Car.increaseTotalCars();
以上是Java面向对象编程的一些核心概念和示例代码,更多面向对象编程实践还会涉及到接口、抽象类、包、访问修饰符等其他重要概念。