当前位置:

JavaOOP从0到1保姆级教程小白也能看懂的设计模式实战案例

小美案哥 2025-12-05 951 0

🔥Java OOP从0到1保姆级教程|小白也能看懂的设计模式+实战案例

📚目录导航:

1️⃣ Java面向对象基础概念(必看入门)

2️⃣ 五大核心特性详解(附代码演示)

3️⃣ 设计模式实战手册(含源码)

4️⃣ 实战项目:图书管理系统开发

5️⃣ 常见面试题

🌟Part 1 Java面向对象基础概念(必看入门)

什么是面向对象编程?简单来说就是用现实世界中的物体来构建程序!就像搭积木一样,我们通过类(Class)和对象(Object)的组合来解决问题。

👉🏻 核心概念拆解:

1️⃣ 类(Class):

- 程序的基本单元

- 像蓝图一样定义属性和方法

👉🏻 对象(Object):

- 类的具体实例

- 每个对象都有独立的内存空间

💡代码示例:

```java

// 定义Person类

class Person {

private String name; // 私有属性

public int age; // 公共属性

public void sayHello() { // 方法

System.out.println("你好,我是" + name);

}

}

// 创建对象

Person tom = new Person();

tom.name = "汤姆";

tom.age = 25;

tom.sayHello(); // 输出:你好,我是汤姆

```

2️⃣ 构造方法(Constructor):

- 对象初始化时自动调用

- 可以重载(多个同名但参数不同)

```java

class Dog {

String breed;

Dog(String b) { // 构造方法

breed = b;

}

Dog() { // 空参构造

breed = "未知品种";

}

}

```

3️⃣ 成员变量:

- 公共(public)、私有(private)、受保护(protected)

- 访问修饰符控制可见性

✅最佳实践:

```java

public class Car {

// 私有属性

private String brand;

private int year;

图片 🔥JavaOOP从0到1保姆级教程|小白也能看懂的设计模式+实战案例2

// 公共方法

public void setBrand(String b) {

brand = b;

}

public String getBrand() {

return brand;

}

}

```

🌟Part 2 五大核心特性详解(附代码演示)

1️⃣ 封装(Encapsulation):

- 属性私有化 + 提供访问方法

- 类似"黑盒"设计

```java

class BankAccount {

private double balance;

public void deposit(double amount) {

balance += amount;

}

public double getBalance() {

return balance;

}

}

```

2️⃣ 继承(Inheritance):

- 子类继承父类属性和方法

- 支持多级继承和多重实现

```java

class Animal {

public void eat() {

System.out.println("动物在吃东西");

}

}

class Dog extends Animal {

@Override

public void eat() { // 重写方法

System.out.println("狗在吃狗粮");

}

}

```

3️⃣ 多态(Polymorphism):

- 同一方法在不同对象中有不同实现

- 三大实现方式:重写/重载/接口

```java

interface USB {

void connect();

}

class USBDrive implements USB {

public void connect() {

System.out.println("U盘已连接");

}

}

class Smartphone implements USB {

public void connect() {

System.out.println("手机已连接");

}

}

```

4️⃣ 抽象类(Abstract Class):

- 包含抽象方法和具体方法

- 必须声明抽象类(abstract)

```java

abstract class Vehicle {

private String color;

public abstract void drive(); // 抽象方法

public void stop() {

System.out.println("车辆已停止");

}

}

```

5️⃣ 接口(Interface):

- 定义行为规范

- 可以实现多个接口

```java

interface Swimmer {

void swim();

}

interface Flyer {

void fly();

}

class Duck implements Swimmer, Flyer {

public void swim() {

System.out.println("鸭子在游泳");

}

public void fly() {

System.out.println("鸭子在飞行");

}

}

```

🌟Part 3 设计模式实战手册(含源码)

1️⃣ 单例模式(Singleton):

- 确保全局唯一实例

```java

public class Config {

private static Config instance;

private Config() {}

public static Config getInstance() {

if(instance == null) {

instance = new Config();

}

return instance;

}

}

```

2️⃣ 工厂模式(Factory):

- 动态创建对象

```java

public class ShapeFactory {

public Shape createShape(String type) {

if(type.equals("CIRCLE")) return new Circle();

else if(type.equals("RECTANGLE")) return new Rectangle();

return null;

}

}

```

3️⃣ 观察者模式(Observer):

- 实现事件通知机制

```java

class Subject {

private List observers = new ArrayList<>();

public void addObserver(Observer o) {

observers.add(o);

}

public void notifyObservers() {

for(Observer o : observers) {

o.update();

}

}

}

```

🌟Part 4 实战项目:图书管理系统开发

📦 项目结构:

```

src/

├── Book.java

├── Library.java

├── Member.java

└── Main.java

```

1️⃣ 核心功能实现:

```java

// Book类

class Book {

private String title;

private String author;

private boolean available;

public Book(String t, String a) {

title = t;

author = a;

available = true;

}

public boolean isAvailable() {

return available;

}

public void setAvailable(boolean available) {

this.available = available;

}

}

// Library类(封装)

class Library {

private List books = new ArrayList<>();

public void addBook(Book book) {

books.add(book);

}

图片 🔥JavaOOP从0到1保姆级教程|小白也能看懂的设计模式+实战案例1

public Book checkoutBook(String title) {

for(Book b : books) {

图片 🔥JavaOOP从0到1保姆级教程|小白也能看懂的设计模式+实战案例

if(b.getTitle().equals(title) && b.isAvailable()) {

b.setAvailable(false);

return b;

}

}

return null;

}

}

// Main类(测试)

public class Main {

public static void main(String[] args) {

Library lib = new Library();

lib.addBook(new Book("Java核心技术", "高并发"));

lib.addBook(new Book("设计模式", "GoF"));

Book book = lib.checkoutBook("设计模式");

if(book != null) {

System.out.println("借阅成功:" + book.getTitle());

} else {

System.out.println("书籍不可用");

}

}

}

```

2️⃣ 扩展功能:

- 添加借阅记录(使用List记录)

- 实现归还功能

- 添加用户权限管理

- 完善异常处理机制

🌟Part 5 常见面试题

1️⃣ Java中继承和实现接口的区别?

👉🏻 继承是父子关系,实现接口是服务关系

👉🏻 继承只能继承一个类,实现可以多个接口

2️⃣ 如何保证单例模式线程安全?

👉🏻 静态内部类实现(推荐)

👉🏻双重检查锁定(DCL)

```java

public class Singleton {

private static Singleton instance;

private Singleton() {}

public static synchronized Singleton getInstance() {

if(instance == null) {

instance = new Singleton();

}

return instance;

}

}

```

3️⃣ 抽象类和接口的区别?

👉🏻 抽象类可以包含具体方法

👉🏻 接口必须所有方法都是抽象的

👉🏻 接口不能有状态(无构造方法)

💡学习建议:

1️⃣ 每天写代码至少30分钟

2️⃣ 参与开源项目(GitHub)

3️⃣ 定期复习设计原则(SOLID)

4️⃣ 多刷LeetCode OOP相关题目

Java学习 OOP 编程入门 技术干货 面试准备 Java面试 设计模式 实战项目