面向对象编程
Java 是一种面向对象的编程语言,支持以下特性:
1. 封装
封装是将数据(属性)和操作数据的方法(行为)组合在一起,形成一个类。通过封装,可以隐藏对象的内部状态,只暴露必要的接口给外部使用。这有助于提高代码的安全性和可维护性。
示例代码
java
public class BankAccount {
private double balance; // 私有字段,外部无法直接访问
public BankAccount(double initialBalance) {
this.balance = initialBalance;
}
// 公共方法,用于存款
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
}
}
// 公共方法,用于取款
public void withdraw(double amount) {
if (amount > 0 && amount <= balance) {
balance -= amount;
}
}
// 公共方法,用于查询余额
public double getBalance() {
return balance;
}
}
2. 继承
继承是指一个类可以继承另一个类的属性和方法,从而实现代码重用。子类可以扩展或修改父类的行为。Java 使用 extends
关键字来实现继承。
示例代码
java
// 父类
public class Animal {
public void eat() {
System.out.println("This animal eats food.");
}
}
// 子类
public class Dog extends Animal {
public void bark() {
System.out.println("Woof!");
}
}
public class InheritanceExample {
public static void main(String[] args) {
Dog dog = new Dog();
dog.eat(); // 继承自 Animal 类的方法
dog.bark(); // Dog 类的方法
}
}
3. 多态
多态是指同一操作可以作用于不同的对象,表现出不同的行为。多态可以通过方法重载和方法重写来实现。方法重载是指同一方法名可以有不同的参数列表,而方法重写是指子类可以重写父类的方法。
示例代码
java
// 父类
public class Shape {
public void draw() {
System.out.println("Drawing a shape.");
}
}
// 子类
public class Circle extends Shape {
@Override
public void draw() {
System.out.println("Drawing a circle.");
}
}
public class Rectangle extends Shape {
@Override
public void draw() {
System.out.println("Drawing a rectangle.");
}
}
public class PolymorphismExample {
public static void main(String[] args) {
Shape shape1 = new Circle(); // 向上转型
Shape shape2 = new Rectangle(); // 向上转型
shape1.draw(); // 输出: Drawing a circle.
shape2.draw(); // 输出: Drawing a rectangle.
}
}
总结
面向对象编程是 Java 的核心特性之一,通过封装、继承和多态,Java 提供了一种灵活且强大的方式来组织和管理代码。这些特性使得 Java 程序更易于理解、维护和扩展。