JAVA猫狗谈(基础概念)

[复制链接]
查看11 | 回复0 | 2004-11-28 22:19:00 | 显示全部楼层 |阅读模式
本帖最后由 mmmj 于 2012-8-16 01:31 编辑
N久前的,竟然还能翻到
JAVA猫狗谈
——————————————————
中国原创排行榜连续10年第一名!!!
——————————————————
本文只是个人创作如有雷同纯属虚构,内容纯属基础概念,供广大象我一样的菜鸟共同交流,也请各位老鸟们多提意见,但不许扔石头与砖头(不小心砸到小朋友了怎么办??),如有鸡蛋、西红柿什么的那俺倒是有口福了,呵呵呵呵~~~~~
1、计算机语言分好多好多种,东西不一样但却都能一些相似的功能,就像是美国人说英语,中国人说汉语,都是交流的工具,只是在某些具体的方面表达效果不同了。我们用汉语中的古诗,外国人怎么翻译也会对味道的。所以一些C或C++编写的好程序,再用JAVA重新编译也没啥大意思。JAVA也一样不是万能的语言,只是在某些方面是最合适的,编写代码效率高,运行安全等等,OK在方面应用就很多用JAVA编写。套用一句话“没有绝对最好,只有相对的最合适”,所以不能期望JAVA能高效地解决一切问题。
2、对象。哎,这实在是因为我文科没有学好,从小学语文就经常被家长打屁股的科目,一直没能想通这个“对象”到底是什么东西呀??
怎么给翻译成对象了呢??当初心里一直骂第一个翻译出这个单词的人,(在这也对此人表示道歉,我承认心里说过不少坏话,真是不应该呀)。为深刻了解“对象”的具体含义下引用国内外解释如下:
商务印刷馆“现代汉语词典(修订本)”第320页:『对象』(1)行动或思考时作为目标的人或事物:革命的~|研究~ (2)特指恋爱的对方:找~|他有~了。
商务印刷馆《牛津高阶英汉双解词典》1008页:『object』(1)solid thing that can be seen and touched可见到及可触摸的实物;物体(2)person or thing to which sth is done or some feeling or thought is directed对象,客体(行为、感觉或思想所及的人或物)(3)thing aimed at;intention;purpose目标;意向;目的 ……
这一看就明白了“对象”就是作为目标的东西,只要你把它作为行动和思考的目标,那它就是一个对象。
记得有句名言“Everything is an Object”,万物皆对象,哎呀,真是太正确不过了!!所有的事物都可以被用作行动和思考的目标,万事万
物你都可以去想去考虑,那只要考虑到它,ok这就是你考虑的目标,就是一个考虑的对象!!!!这句话就像是说“每个人都是动物”一样的千真万确!!
哦,面向对象的编程方式,是以所研究的事物作为思考的出发点。
3、类。祖宗云:物以类聚,人以群分。JAVA的面向对象完全遵守这条古训呀,所有的事物都能划分到类里去。
现说存在“哺乳动物”类,下面分有“猫”类与“狗”类。
类名“哺乳动物”这个名字是为了形容那种“靠母体的乳腺分泌乳汁哺育初生幼体的动物”,当然也可以叫A类或B类,或者就叫“靠母体的乳腺分泌乳汁哺育初生幼体的动物”类。名称只是一个便于区分的符号,好名字更容易理解而已。所以在JAVA编程里定义一个变量或类应尽量把其中的含义表示出来,增强源代码的可读性,如String name;String student_name;int age;int Student_age等等,如果定义a、b、c当然也是没有一点错误的。
(这儿说“哺乳动物类”里只含有“猫”与“狗”,只是为了下面说的方便。现实世界中,当然还有“老虎、大象、鸭嘴兽等等等等”,而和“哺乳动物类”平级的类,还有非哺乳动物类的,如鸟类、鱼类等等,而这些类的上面又可以分为“动物类”“植物类”等等,再上面又分为“生物”“非生物”等等,然后再上面还有………………,到最高层就是“物质”与“非物质”了,再上面还能整出别的什么类,反正我不知道了,也许外星人晓得,哪位哥们姐们有机会也帮问问哦^.^)
class Mammal/*哺乳动物类(乳汁养育后代)*/
{
……
}
class Cat extends Mammal/*猫类(乳汁养育后代,还能抓老鼠,还能爬树,还能……反正就是一直猫)*/
{
……
}
class Dog extends Mammal/*狗类(也是乳汁养育后代,两睛两耳四条腿,但狗肯定不会爬树,肯定不是猫了)*/
{
……
}
在这个限定之下“哺乳动物类”就是我们需要研究的最基础的类,就像是研究心理学的专家从不考虑“哺乳动物类”一样,我们也暂时不考虑别的类。既然是最基础的类,难道还要再次来解释什么是“哺乳动物”嘛??这是最开始是定义好的了的呀!!!就好像物理力学的三大定律,那谁告诉我推导出三大定律的定律是什么东西?反正我孤陋寡闻,我是不知道。
如果除了“猫”类与“狗”类,一天科学家又在火星上发现了一头“猪”,这头“猪”也能用乳汁哺育后代,完全满足“哺乳动物”的定义,那与“猫”“狗”平级的类中应该就需要加入“猪”这一个类了。新增的“猪”类具有了“哺乳动物”定义中的所有的特性,按照JAVA的术语就是“继承”了“哺乳动物”的所有特点。
class Pig extends Mammal/*猪类(火星上面发现的猪,也是长鼻子大耳朵吧,哈哈哈哈……别砸我别砸我呀~~~~)*/
{
……
}
在JAVA中最基础的类也就是java.lang.Object类,不管是系统提供的类还是自己写的类,所有的类都是直接或间接继承自这个Object类的。
4、多态。还是回到只有“猫”类与“狗”类的“哺乳动物”类上。说有一哺乳动物a(这个a就是一个“哺乳动物”类的实例,就是一个“哺乳动物”类对象),那A是“猫”呀还是“狗”呀,这并没有明确说明,那么也就是说a可能是一只猫,也可能是一只狗,这么两种状态。
Mammal a;/* 哺乳动物a */
可能:
a=new Cat();/* 哺乳动物a是一只“猫” */
也可能:
a=new Dog();/* 哺乳动物a是一只“狗” */
不管是猫是狗都该能叫两声吧,只是当a是猫时它只能“喵喵”地叫,当是狗是只能“汪汪”地叫(如果谁家有狗“喵喵”叫,那算这条狗牛B大了去了)
多态就是指父类某个方法被子类重写时,可以各自产生自己的功能行为。就象上面这个a一样,如果被Cat类重写,只能产生“喵喵”叫的行为,被Dog重写只能产生“汪汪”叫的行为。
5、静态变量。Static修饰的东西可以理解为一个公有的东西,是提前进入共产主义社会阶段的事物了。说给狗狗们一共10根骨头,现在有两只狗,“旺财1”与“旺财2”,不管是“旺财1”还是“旺财2”饿了都要吃骨头,“旺财1”吃了一根骨头,那对于“旺财1”与“旺财2”来说都只剩下9根骨头了。
class Dog_bone
{
public static int BoneNumber=10;/*狗狗类的骨头有10根*/
public void eat()
{
BoneNumber--;
}
public static void main(String[] args)
{
Dog 旺财1=new Dog();
Dog 旺财2=new Dog();
旺财1.eat();/* 旺财1吃一根 */
System.out.println(BoneNumber);
旺财2.eat();/* 旺财2吃一根 */
System.out.println(BoneNumber);
}
}

今晚写累了,拼音打出来的应该错别字不少,大家多多原谅。
大家唱歌吧 “我是一只小小狗,你是我骨头,你就是掉进臭水沟,俺也会衔着你走¥%……¥%……67#·!143%—*!啊啊~~~~~~”
谁家的狗没拴好,出来乱咬人啦~~~~~~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行