哈尔滨建设部网站,wordpress获取标签页,seo怎么优化效果更好,局域网网站建设的步骤过程第一章#xff1a;封装的艺术 —— 保护你的宝藏
案例分析#xff1a;银行账户系统
想象一下#xff0c;你正在构建一个银行账户系统。每个账户都有一个余额#xff0c;这个余额需要受到严格的保护#xff0c;不能被随意修改。我们可以通过封装来实现这一目标。
示例代…第一章封装的艺术 —— 保护你的宝藏
案例分析银行账户系统
想象一下你正在构建一个银行账户系统。每个账户都有一个余额这个余额需要受到严格的保护不能被随意修改。我们可以通过封装来实现这一目标。
示例代码
public class BankAccount {private double balance; // 私有变量不允许直接访问public BankAccount(double initialBalance) {if (initialBalance 0.0) {balance initialBalance;} else {balance 0.0;}}// 提供公共方法存款public void deposit(double amount) {if (amount 0.0) {balance amount;}}// 提供公共方法取款public boolean withdraw(double amount) {if (amount balance) {balance - amount;return true;} else {return false;}}// 提供公共方法查询余额public double getBalance() {return balance;}
}在这个例子中balance被声明为私有变量只能通过deposit()、withdraw()和getBalance()方法进行访问和修改。这样我们就能确保账户的安全性和一致性。 第二章继承的传承 —— 父亲的衣钵
案例分析动物王国
在Java中继承允许我们创建一个类族谱使得子类可以继承父类的属性和方法从而实现代码的复用和扩展。
示例代码
// 定义一个父类 Animal
public abstract class Animal {protected String name;protected int age;public Animal(String name, int age) {this.name name;this.age age;}public abstract void makeSound(); // 抽象方法强制子类实现
}// 定义一个子类 Dog继承自 Animal
public class Dog extends Animal {public Dog(String name, int age) {super(name, age);}Overridepublic void makeSound() {System.out.println(Woof woof!);}
}// 定义另一个子类 Cat继承自 Animal
public class Cat extends Animal {public Cat(String name, int age) {super(name, age);}Overridepublic void makeSound() {System.out.println(Meow meow!);}
}public class Main {public static void main(String[] args) {Animal myDog new Dog(Buddy, 3);Animal myCat new Cat(Whiskers, 2);myDog.makeSound(); // 输出: Woof woof!myCat.makeSound(); // 输出: Meow meow!}
}在这个例子中Animal类作为基类定义了一个makeSound()抽象方法所有继承自它的子类如Dog和Cat都必须实现这个方法。这样我们就能够通过一个统一的接口即Animal类来处理不同类型的动物体现了继承的优势。 第三章多态的魔法 —— 变身大师的技能
案例分析图形绘制系统
在Java中多态允许我们编写更加灵活和通用的代码通过多态同一段代码可以处理不同类型的对象具体的行为由运行时对象的实际类型决定。
示例代码
// 定义一个图形接口 Shape
public interface Shape {double calculateArea();
}// 实现 Shape 接口的 Circle 类
public class Circle implements Shape {private double radius;public Circle(double radius) {this.radius radius;}Overridepublic double calculateArea() {return Math.PI * radius * radius;}
}// 实现 Shape 接口的 Rectangle 类
public class Rectangle implements Shape {private double width;private double height;public Rectangle(double width, double height) {this.width width;this.height height;}Overridepublic double calculateArea() {return width * height;}
}public class Main {public static void main(String[] args) {Shape circle new Circle(5);Shape rectangle new Rectangle(4, 6);System.out.println(Circle area: circle.calculateArea()); // 输出: Circle area: 78.53981633974483System.out.println(Rectangle area: rectangle.calculateArea()); // 输出: Rectangle area: 24.0}
}在这个例子中我们定义了一个Shape接口以及两个实现该接口的类Circle和Rectangle。通过多态我们可以使用Shape类型的引用指向任何实现了Shape接口的对象并调用其calculateArea()方法。这样我们就可以写出通用的代码处理任意形状的图形极大地提高了代码的灵活性和可扩展性。 设计模式与面向对象原则
深入理解封装、继承和多态之后你将发现它们是许多高级编程概念和设计模式的基础。比如 单一职责原则一个类应该只有一个引起它变化的原因这正是封装思想的体现。例如在BankAccount类中我们通过将balance设置为私有变量并提供公共方法来操作它确保了账户的职责清晰。 开放封闭原则对扩展开放对修改关闭。继承和多态机制是实现这一原则的关键。例如在Animal类的例子中我们定义了一个抽象方法makeSound()所有的子类都必须实现这个方法。这样当我们需要添加新的动物类型时只需创建一个新的子类即可无需修改现有代码。 工厂模式这是一种常用的创建型设计模式用于封装对象的创建过程。通过工厂方法我们可以根据传入的参数动态地创建对象而无需指定具体的类。结合继承和多态工厂模式可以提供非常灵活的对象创建机制。 策略模式这是一种行为型设计模式允许在运行时选择算法或行为。通过定义一组算法接口然后让不同的策略类实现这些接口我们可以根据实际需求动态地切换策略这充分体现了多态的灵活性。