浅谈类和对象

早上起来上班,天空飘着绵绵细雨,顺着这个雨在那边思考,突然联想到编程里的类和对象。记得上学那会,类和对象总是理解不清,不知道何为类何为对象。现在想来,也不知道自己有没有真正的理解。就着这次的思考,也谈谈我对类和对象的思考。因为是个人理解,难免有偏差。

我总喜欢把编程融入生活,我觉得编程就是另一种生活,它可以映射到很多生活的场景。很多计算机的概念都是晦涩难懂,所以很多人都觉得编程很难。扯远了,还是接着正题说。为什么会想到类和对象呢,就是因为这场雨[貌似很多事情都能和雨扯上关系],雨为什么叫雨呢,为什么不叫雪,不叫其他的呢,就是因为它自身带了一些属性。比如说他是透明的,他是液态等等,那什么是雪呢?雪是不透明的,是固态的等等。我们是通过什么去区分他们的呢,就是通过这些属性。也许你会说我看到他们我就能够区分他们,并不是因为这些属性来区分他们的,这是一个常识。那么如果我把这些属性去掉之后,你还能通过肉眼区分他们吗?我觉得是不可以的。

如果我将雨和融化的雪放在一起,我不告诉你哪个是雪,哪个是雨,你还能区分吗?为什么不能够区分,因为雪失去了固态和透明的属性,它变成了水。而这个属性恰恰是雨的属性,所以你很难区分出来。讲到这里我觉得可以引出类和对象了。

百度百科上说: 对象是对客观事物的抽象,类是对对象的抽象。第一句怎么理解,因为在计算机的里没有客观事物的,所以只能将这些客观事物做一个抽象,用一些属性和行为表示他们;第二句怎么理解,这些属性在忽略特定值的情况下,可以将他们化为一类,那么这就是类。对象和类对应到上面的例子中就是雨,雪和水。下面给大家看看代码,有个直观的感受。

package com.freefitter.entity;

public class Water {

    //是否透明
    private boolean isTransparent;

    //是否是液体
    private boolean isLiquid;

    //温度
    private String temperature;


    public boolean getIsTransparent() {
        return isTransparent;
    }

    public void setTransparent(boolean transparent) {
        isTransparent = transparent;
    }

    public boolean getIsLiquid() {
        return isLiquid;
    }

    public void setLiquid(boolean liquid) {
        isLiquid = liquid;
    }

    public String getTemperature() {
        return temperature;
    }

    public void setTemperature(String temperature) {
        this.temperature = temperature;
    }

}
下面是测试类:

package com.freefitter.entity;

public class TestWater {

    public static void main(String[] args) {
        //now they are all water
        Water rain = new Water(); //this is rain object
        Water snow = new Water(); //this is snow object

        //set is liquid
        rain.setLiquid(true);
        snow.setLiquid(false);

        //set is transparent
        rain.setTransparent(true);
        snow.setTransparent(false);

        //set temperature
        rain.setTemperature("Zero");
        snow.setTemperature("Less than Zero");

        //now they are different
    }
}

不知道自己能够把自己的想法表达出几分,不能完全表达的话,后续在写写吧,毕竟水平有限,不喜轻喷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值