Java面向对象编程:从入门到实战的50个经典示例解析

面向对象编程(OOP)是Java编程语言的核心特性之一,它提供了一种组织代码的方式,使得代码更加模块化、可重用和易于维护。以下是从入门到实战的50个经典示例解析,旨在帮助读者深入理解Java面向对象编程的精髓。
1. 类与对象的定义
示例代码:
public class Person {
private String name;
private int age;

public Person(String name, int age) {
this.name = name;
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}
}
解析:
在这个示例中,我们定义了一个
Person
类,包含两个属性
name
和
age
,以及相应的构造方法、getter和setter方法。
2. 继承
示例代码:
public class Employee extends Person {
private String id;

public Employee(String name, int age, String id) {
super(name, age);
this.id = id;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}
}
解析:
这个示例展示了继承的概念,
Employee
类继承自
Person
类,并添加了一个新的属性
id
。
3. 多态
示例代码:
public class Animal {
public void makeSound() {
System.out.println(“Some sound”);
}
}

public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println(“Woof!”);
}
}

public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println(“Meow!”);
}
}
解析:
在这个示例中,
Dog
和
Cat
类都继承自
Animal
类,并覆盖了
makeSound
方法,展示了多态的概念。
4. 封装
示例代码:
public class BankAccount {
private double balance;

public BankAccount(double initialBalance) {
balance = initialBalance;
}

public void deposit(double amount) {
balance += amount;
}

public void withdraw(double amount) {
if (amount <= balance) { balance -= amount; } } public double getBalance() { return balance; } } 解析: 在这个示例中, BankAccount 类使用私有变量 balance 来存储账户余额,并通过公共方法来访问和修改它,实现了封装。 5. 构造器重载 示例代码: public class Rectangle { private double length; private double width; public Rectangle() { length = 0; width = 0; } public Rectangle(double length, double width) { this.length = length; this.width = width; } } 解析: 这个示例展示了构造器重载的概念, Rectangle 类有两个构造器,一个无参数构造器和一个带有两个参数的构造器。 6. 内部类 示例代码: public class OuterClass { private int x = 10; public class InnerClass { public void display() { System.out.println("x = " + x); } } } 解析: 在这个示例中, OuterClass 包含一个内部类 InnerClass ,它可以访问外部类的成员变量。 7. 抽象类与接口 示例代码: abstract class Animal { public abstract void makeSound(); } interface Movable { void move(); } class Dog extends Animal implements Movable { @Override public void makeSound() { System.out.println("Woof!"); } @Override public void move() { System.out.println("Dog is moving"); } } 解析: 这个示例展示了抽象类和接口的使用, Animal 是一个抽象类, Movable 是一个接口, Dog 类继承自 Animal 并实现了 Movable 接口。 8. 异常处理 示例代码: “`java public class Division { public static void main(String[] args) { try { int result = divide(10, 0); System.out.println("Result: " + result); } catch (ArithmeticException e) { System.out.println("