什么是对象?
2016-05-09 16:12
267 查看
Java是面向对象的语言,而面向对象编程主要体现了继承、封装、多态三个特性,那么什么是对象?
其实翻译已经做得很好了,只要理解了这个汉字——象。
《易·系辞》:在天成象。
【疏】謂懸象日月星辰也。
《易·系辞》:象也者,像此者也。
【疏】言象此物之形狀也。
什么是“象”?象,万物之形,万物之状,万物之况,万物之相也。
天地万事万物都是一个个存在,一个个实体,然而这个实体虽然存在,若是没有人能看到它,没有某个意识能够察觉到它,它便等于不存在,没有存在的意义,没有存在的价值。因此,象并不真正指那个实际存在,一切象形只不过是我们人类所看,所觉,所观测到的而已,而每个人所看到的都不会真正相同;一切都在变化中,没有真正永恒的实体;人绝难真正、彻底了解一个事物的本来面目,正如佛学所说:“色即是空,空即是色;色不亦空,空不亦色”,“一切有为法,如梦幻泡影,如露亦如电,应作如是观”。(这种哲学问题还可以参考量子学的观察者模式)
说的抽象了,哈,什么又是抽象呢?抽出某个存在的“象”,就是抽象了。象是概念,是人对事物的理解,是事物的特性集合,可以代表那个事物,虽然无法真正意义上的表述。所以,抽象,实际意思是获取某个事物的“象”的过程,由于这个过程不好理解,于是抽象还具有了难以理解,很陌生化的意思。
编程语言是计算机世界语言,相当于现实世界的规则,真正掌握了规则的人就可以成为造物主。当然,计算机世界也是我们真实世界的一部分;而计算机世界的造物主就是程序员了,造物主创造出来的一个个东西就可以描述为“对象”。同样,这也可以用其他词语称呼,不用执着,老子也说过:“道可道,非恒道也;名可名,非恒名也”,“吾不知其名,强谓之曰’道‘”,一切名相只是事物的描述,只要一描述就不是那个事物。
那么具体怎么“造物”?在不同的编程语言中有所不同。在java中,“造物”的过程就是实例化对象,具体的代码表现为:
于是问题又出来了,在编程语言中,什么是类?
类就是所要描述事物的各个属性、功能的集合。当然类作为一个存在,无论是概念上的存在,还是作为承载具体代码的文件的存在,还是其他的形式,这当然也是一种对象。
作为概念上的存在来说,类只不过是我们用编程语言描述某个事物的”象“的集合,是不真正具有实体的,不像一本书,一个椅子那样,而是人的意识划分出来的。
作为承载代码的存在,它便具有了”身体“,它的身体就是电脑上某个xxx.java或xxx.cpp这样的文件,”开膛破肚“后,可以看到”public xxx“等器官或细胞。
那么,代码造物的具体形式是什么样的?以Java语言来编写,选取现实世界不存在的一个人物——孙悟空,作为描述的对象。代码如下:
当《西游记》开播后:
运行效果:
《西游记》开始了
……女娲补天结束了…在花果山留下一块五彩石
五彩石每天吸收日月精华…
过了n多万年,终于五彩石内孕仙胎…
石破天惊,花果山天产石猴出世了,目射金光,直冲牛斗,玉帝命千里眼顺风耳查探……
石猴种族:灵明石猴
千里眼顺风耳报告:石猴身高大概1.6
石猴体重大概:70.0
……石猴当上猴王,因感生老病死,出海遍寻真师……
过了数年……到了“灵台方寸山,斜月三星洞”……拜师菩提老祖
菩提老祖为石猴取名:孙悟空
……悟空得授法术……
悟空施展法天相地……
于是悟空身高:999.0
体重:999.0
…………………………………………
……取经大业开始……
……功德圆满……
–西游记完–
其实翻译已经做得很好了,只要理解了这个汉字——象。
《易·系辞》:在天成象。
【疏】謂懸象日月星辰也。
《易·系辞》:象也者,像此者也。
【疏】言象此物之形狀也。
什么是“象”?象,万物之形,万物之状,万物之况,万物之相也。
天地万事万物都是一个个存在,一个个实体,然而这个实体虽然存在,若是没有人能看到它,没有某个意识能够察觉到它,它便等于不存在,没有存在的意义,没有存在的价值。因此,象并不真正指那个实际存在,一切象形只不过是我们人类所看,所觉,所观测到的而已,而每个人所看到的都不会真正相同;一切都在变化中,没有真正永恒的实体;人绝难真正、彻底了解一个事物的本来面目,正如佛学所说:“色即是空,空即是色;色不亦空,空不亦色”,“一切有为法,如梦幻泡影,如露亦如电,应作如是观”。(这种哲学问题还可以参考量子学的观察者模式)
说的抽象了,哈,什么又是抽象呢?抽出某个存在的“象”,就是抽象了。象是概念,是人对事物的理解,是事物的特性集合,可以代表那个事物,虽然无法真正意义上的表述。所以,抽象,实际意思是获取某个事物的“象”的过程,由于这个过程不好理解,于是抽象还具有了难以理解,很陌生化的意思。
编程语言是计算机世界语言,相当于现实世界的规则,真正掌握了规则的人就可以成为造物主。当然,计算机世界也是我们真实世界的一部分;而计算机世界的造物主就是程序员了,造物主创造出来的一个个东西就可以描述为“对象”。同样,这也可以用其他词语称呼,不用执着,老子也说过:“道可道,非恒道也;名可名,非恒名也”,“吾不知其名,强谓之曰’道‘”,一切名相只是事物的描述,只要一描述就不是那个事物。
那么具体怎么“造物”?在不同的编程语言中有所不同。在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
…………………………………………
……取经大业开始……
……功德圆满……
–西游记完–
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- Python动态类型的学习---引用的理解
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序