类和对象

本文通过实例比较了面向对象编程与面向过程编程的区别,详细解释了两种编程思想的不同之处,并展示了如何从面向过程转变为面向对象的思维方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Core Java 类和对象相关

面向对象编程:程序 = 数据结构 + 算法,先思考如何组织对象,再思考如何操作数据。
面向过程编程:程序 = 算法 + 数据结构,先思考如何操作数据,再思考如何组织数据。

例子:吃饭
面向过程时:先洗菜,再烧饭,最后吃饭,一步一步地有先后顺序的尝试解决问题。
面向对象时:人吃饭,需要有人、饭、菜这些类,人具备洗菜、烧饭、吃饭的行为,

public class HumanEatTest {

    public static void main(String[] args) {
        Rice rice = new Rice();
        rice.setName("香米");
        Vegetable vegetable = new Vegetable();
        vegetable.setName("青菜");
        Human human = new Human();
        human.clean(rice,vegetable);
        human.cooking(rice,vegetable);
        human.eat(rice,vegetable);
    }
}
____________________________________________________________________________________
public class Human{

    public void eat(Rice rice,Vegetable vegetable){
        System.out.println("人吃" + rice.getName() + "和" + vegetable.getName());
    }

    public void clean(Rice rice,Vegetable vegetable){
        System.out.println("人洗" + rice.getName() + "和" + vegetable.getName());
    }

    public void cooking(Rice rice,Vegetable vegetable){
        System.out.println("人煮:" + rice.getName() + "和烧" + vegetable.getName());
    }
}
____________________________________________________________________________________
public class Rice{

    private String name;

    public String getName() {
        return name;
    }

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

    private String name;

    public String getName() {
        return name;
    }

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

思考问题的方式由面向过程转变成面向对象还是需要经验积累的,熟能生巧,先分析需要哪些类,这些类中应该具备哪些方法,每个方法对应做什么事情,在每个方法的时候再采用面向过程的思维去做,最后通过对象调方法来解决问题。

类和类之间存在的关系:

关系说明例子
依赖(use-a)一个类的方法操纵了另一个类的对象human类依赖于rice类
继承(is-a)一个类和另一个类满足“子父”关系黑米是米的一种,blackRice继承rice类
聚合 (has-a)一个类中的成员属性位置包含另一个类body类中包含leg类

回调:回调( callback) 是一种常见的程序设计模式。在这种模式中, 可以指出某个特定事件发
生时应该采取的动作。 例如,可以指出在按下鼠标或选择某个菜单项时应该采取什么行动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值