码迷,mamicode.com
首页 > 其他好文 > 详细

什么是对象?

时间:2016-05-12 21:36:55      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

Java是面向对象的语言,而面向对象编程主要体现了继承、封装、多态三个特性,那么什么是对象?
其实翻译已经做得很好了,只要理解了这个汉字——象。
《易·系辞》:在天成象。
【疏】謂懸象日月星辰也。

《易·系辞》:象也者,像此者也。
【疏】言象此物之形狀也。

什么是“象”?象,万物之形,万物之状,万物之况,万物之相也。
天地万事万物都是一个个存在,一个个实体,然而这个实体虽然存在,若是没有人能看到它,没有某个意识能够察觉到它,它便等于不存在,没有存在的意义,没有存在的价值。因此,象并不真正指那个实际存在,一切象形只不过是我们人类所看,所觉,所观测到的而已,而每个人所看到的都不会真正相同;一切都在变化中,没有真正永恒的实体;人绝难真正、彻底了解一个事物的本来面目,正如佛学所说:“色即是空,空即是色;色不亦空,空不亦色”,“一切有为法,如梦幻泡影,如露亦如电,应作如是观”。(这种哲学问题还可以参考量子学的观察者模式)

说的抽象了,哈,什么又是抽象呢?抽出某个存在的“象”,就是抽象了。象是概念,是人对事物的理解,是事物的特性集合,可以代表那个事物,虽然无法真正意义上的表述。所以,抽象,实际意思是获取某个事物的“象”的过程,由于这个过程不好理解,于是抽象还具有了难以理解,很陌生化的意思。

编程语言是计算机世界语言,相当于现实世界的规则,真正掌握了规则的人就可以成为造物主。当然,计算机世界也是我们真实世界的一部分;而计算机世界的造物主就是程序员了,造物主创造出来的一个个东西就可以描述为“对象”。同样,这也可以用其他词语称呼,不用执着,老子也说过:“道可道,非恒道也;名可名,非恒名也”,“吾不知其名,强谓之曰’道‘”,一切名相只是事物的描述,只要一描述就不是那个事物。

那么具体怎么“造物”?在不同的编程语言中有所不同。在java中,“造物”的过程就是实例化对象,具体的代码表现为:

new 类名();

于是问题又出来了,在编程语言中,什么是类?
类就是所要描述事物的各个属性、功能的集合。当然类作为一个存在,无论是概念上的存在,还是作为承载具体代码的文件的存在,还是其他的形式,这当然也是一种对象。

作为概念上的存在来说,类只不过是我们用编程语言描述某个事物的”象“的集合,是不真正具有实体的,不像一本书,一个椅子那样,而是人的意识划分出来的。

作为承载代码的存在,它便具有了”身体“,它的身体就是电脑上某个xxx.java或xxx.cpp这样的文件,”开膛破肚“后,可以看到”public xxx“等器官或细胞。

那么,代码造物的具体形式是什么样的?以Java语言来编写,选取现实世界不存在的一个人物——孙悟空,作为描述的对象。代码如下:

public class 孙悟空{
    private String name;//名字
    private double height;//身高,悟空的身高是可变的
    private double weight;//体重,悟空的体重同样是可变的
    private static final String racist = "灵明石猴"; //种族,悟空是灵明石猴,还在娘胎里就确定了。由于作者已经作古,于是不能更改了。改的是同人小说。
    /**
    *设置名字,菩提老祖取的
    */
    public void setName(String name){
        this.name = name;
    }
    /**
    *获取名字
    */
    public String getName(){
        return name;
    }
    /**
    *设置身高
    */
    public void setHeight(double height){
        this.height = height;
    }
    /**
    *获得身高
    */
    public double getHeight(){
        return height;
    }
    /**
    *设置体重
    */
    public void setWeight(double weight){
        this.weight = weight;
    }
    /**
    *获取体重
    */
    public double getWeight(){
        return weight; 
    }
    /**
    *获取种族名称
    */
    public String getRecist(){
        return racist;  
    }
    }

当《西游记》开播后:

public class 西游记 {

    public static void main(String[] args) throws InterruptedException {
        System.out.println("《西游记》开始了\n");
        Thread.sleep(1000);
        System.out.println("……女娲补天结束了...在花果山留下一块五彩石\n");
        Thread.sleep(1000);
        System.out.println("五彩石每天吸收日月精华...\n");
        Thread.sleep(3000);//五彩石继续吸收中
        System.out.println("过了n多万年,终于五彩石内孕仙胎...\n");
        Thread.sleep(1000);

        孙悟空 wuKong = new 孙悟空();//创建对象
        wuKong.setHeight(1.6);//悟空大概1.6米高
        wuKong.setWeight(70);//悟空大概70斤,虽然是石头


        System.out.println("石破天惊,花果山天产石猴出世了,目射金光,直冲牛斗,玉帝命千里眼顺风耳查探……\n");
        Thread.sleep(1000);

        System.out.println("石猴种族:"+wuKong.getRecist());
        System.out.println("千里眼顺风耳报告:石猴身高大概"+wuKong.getHeight());
        System.out.println("石猴体重大概:"+wuKong.getWeight());
        Thread.sleep(1000);

        System.out.println("\n……石猴当上猴王,因感生老病死,出海遍寻真师……\n");
        Thread.sleep(3000);//石猴继续寻找中...

        System.out.println("过了数年……到了“灵台方寸山,斜月三星洞”……拜师菩提老祖\n");
        wuKong.setName("孙悟空");
        System.out.println("菩提老祖为石猴取名:"+wuKong.getName());
        Thread.sleep(1000);

        System.out.println("\n……悟空得授法术……");
        Thread.sleep(1000);

        System.out.println("悟空施展法天相地……\n");
        wuKong.setHeight(999);
        wuKong.setWeight(999);
        Thread.sleep(1000);

        System.out.println("于是悟空身高:"+wuKong.getHeight());
        System.out.println("体重:"+wuKong.getWeight());

        System.out.println("\n…………………………………………");
        System.out.println("……取经大业开始……");
        Thread.sleep(3000);
        System.out.println("……功德圆满……");
        System.out.println("--西游记完--");
    }

}

运行效果:

《西游记》开始了

……女娲补天结束了…在花果山留下一块五彩石

五彩石每天吸收日月精华…

过了n多万年,终于五彩石内孕仙胎…

石破天惊,花果山天产石猴出世了,目射金光,直冲牛斗,玉帝命千里眼顺风耳查探……

石猴种族:灵明石猴
千里眼顺风耳报告:石猴身高大概1.6
石猴体重大概:70.0

……石猴当上猴王,因感生老病死,出海遍寻真师……

过了数年……到了“灵台方寸山,斜月三星洞”……拜师菩提老祖

菩提老祖为石猴取名:孙悟空

……悟空得授法术……
悟空施展法天相地……

于是悟空身高:999.0
体重:999.0

…………………………………………
……取经大业开始……
……功德圆满……
–西游记完–

什么是对象?

标签:

原文地址:http://blog.csdn.net/mingyueyixi/article/details/51353903

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!