编程自学指南:java程序设计开发,面向对象基础,面向对象 vs 面向过程,类与对象,封装,继承与多态

编程自学指南:java程序设计开发,面向对象基础

学习目标

  1. 理解类与对象的概念及关系

  2. 掌握封装、继承、多态三大特性

  3. 能够设计简单的类结构并实现对象交互

  4. 用面向对象思维解决实际问题


一、课程引入

1.1 面向对象 vs 面向过程

  • 生活类比

    • 面向过程:如何做菜 → 一步步执行(洗菜、切菜、炒菜)

    • 面向对象:谁来做菜 → 定义厨师、食材、厨具等对象协作

  • 核心思想:用对象模拟现实世界,提高代码复用性和扩展性

1.2 面向对象三大特性

  • 封装:隐藏内部实现细节(如手机内部电路不可见)

  • 继承:子类复用父类特性(如猫和狗继承自动物)

  • 多态:同一方法不同实现(如不同动物叫声不同)


二、类与对象

2.1 类的定义

语法
public class 类名 {  
    // 属性(成员变量)  
    // 方法(成员方法)  
}

案例1:学生类

public class Student {  
    // 属性  
    String name;  
    int age;  

    // 方法  
    public void study() {  
        System.out.println(name + "正在学习");  
    }  
}

2.2 对象的创建与使用

// 创建对象  
Student stu1 = new Student();  
// 属性赋值  
stu1.name = "张三";  
stu1.age = 18;  
// 调用方法  
stu1.study();
案例2:汽车类

public class Car {  
    String brand;  
    String color;  

    public void run() {  
        System.out.println(color + "的" + brand + "正在行驶");  
    }  
}  

// 测试类  
Car myCar = new Car();  
myCar.brand = "Toyota";  
myCar.color = "黑色";  
myCar.run();

三、封装

3.1 封装的实现

  • 步骤

    • 属性私有化(private

    • 提供公共的getter/setter方法

案例3:银行账户类

public class BankAccount {  
    private String accountId;  
    private double balance;  

    // getter/setter  
    public double getBalance() {  
        return balance;  
    }  

    public void deposit(double amount) {  
        if (amount > 0) {  
            balance += amount;  
        }  
    }  
}  
// 使用示例  
BankAccount account = new BankAccount();  
account.deposit(1000);  
System.out.println("余额:" + account.getBalance());

3.2 构造方法

案例4:带构造方法的图书类

public class Book {  
    private String title;  
    private String author;  

    public Book(String title, String author) {  
        this.title = title;  
        this.author = author;  
    }  
}  

// 创建对象  
Book book = new Book("Java编程思想", "Bruce Eckel");

四、继承与多态

4.1 继承的实现

// 父类  
public class Animal {  
    public void eat() {  
        System.out.println("动物在吃东西");  
    }  
}  

// 子类  
public class Dog extends Animal {  
    @Override  
    public void eat() {  
        System.out.println("狗在啃骨头");  
    }  

    public void bark() {  
        System.out.println("汪汪叫");  
    }  
}
案例5:继承应用

Animal animal = new Dog();  
animal.eat();  // 输出"狗在啃骨头"(多态)  
// animal.bark();  // 编译错误:Animal类无此方法

4.2 多态的应用

案例6:图形类多态计算面积

public abstract class Shape {  
    public abstract double getArea();  
}  

public class Circle extends Shape {  
    private double radius;  

    public Circle(double radius) {  
        this.radius = radius;  
    }  

    @Override  
    public double getArea() {  
        return Math.PI * radius * radius;  
    }  
}  

// 测试多态  
Shape shape = new Circle(5.0);  
System.out.println("圆形面积:" + shape.getArea());

五、综合应用与错误分析

5.1 综合案例

案例7:简易图书馆管理系统

public class Library {  
    private List<Book> books = new ArrayList<>();  

    public void addBook(Book book) {  
        books.add(book);  
    }  

    public void showBooks() {  
        for (Book book : books) {  
            System.out.println(book.getTitle());  
        }  
    }  
}

5.2 常见错误

  • 错误1:混淆类与对象

    Student.name = "张三";  // 错误:未创建对象直接访问成员

    错误2:继承滥用

public class Email extends Message {}  // 错误:Email不是Message的一种

六、总结与练习

6.1 总结

  • 类与对象:类是蓝图,对象是实例

  • 三大特性

    • 封装:保护数据安全

    • 继承:实现代码复用

    • 多态:增强扩展性

6.2 课后任务

  1. 设计一个Person类及其子类StudentTeacher,实现多态方法introduce()

  2. 实现一个商品管理系统(商品类+购物车类)

  3. 预习下一节课:面向对象高级特性(抽象类、接口)

6.3 扩展挑战

  • 用面向对象思想设计一个简单的游戏角色系统(包含职业、技能、属性)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zl515035644

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值