1.面向对象


1.面向对象

    众所周知,Java是一面向对象的语言,那么什么是面向对象呢,我刚开始学Java时,疑惑了很长很长时间,后来随着代码量的积累才慢慢懂了。

    计算机语言是一种用计算机来解决现实中问题的工具。为了分析Java的面向对象,我从现实世界来观察。

    (我在这里就不讨论多维宇宙的问题了啊。)

    将我们的世界用照相机咔嚓一下(也就是时间暂停一下),那么现在的东西就很有趣了。因为上面的物体都是静止的。

我们可以指着上面的苹果说,这是一个苹果等等。

    因此,物体,就是这个世界最基本的组成元素了。

    也就是说,在静止时,物体可以表示这个世界上的一切,对吧?那么,从现实世界转换到计算机世界,于是,Object(物体的意思)就产生了,在Java中,Object代表了一切。

    那么我们可以再分析,静止世界中,我们可以看到多种多样的物体,所以,又转换一下,在Java中,我们可以有不同的Object,但是这样很不好表述,于是我们定义了一个名字Class,对,Class是类的意思,也即是类型,不同的Class就是不同类型的ObjectClass怎样用Java来写呢?这样的:

class Apple{  }

上面的class表示这是一个Class,接下来的表示这个Class的名字是Apple,{  }表示这个Class包含的内容范围。

      

    OK,接着分析,同种类型的物体也可以有多个,比如苹果可以有红苹果,绿苹果,国光苹果,富士苹果等等。那么在Java中,一个Class也代表多个物体,我们怎么区分多个物体呢?我们需要操作Class(类型)下的一个物体,怎么办呢?所以出现了对象,对象是什么东西呢,对象就是操作的目标,也就是我们实际程序中需要操作的东东。好了,我现在想有一个绿苹果,怎么办呢?我们来分析一下这句话:绿苹果,它告诉我们两个东西,一个是类型为苹果,另一个是这个东东名字叫“绿苹果”,有了,写行代码吧,不过我相信你就算没有Java基础都会写了:

ApplegreeenApple;

类型 名字。

这句话的意思了在计算机出现一个名字为greeenApple的物体,用Java语言就是:创建引用,也就是创建一个名字,以后我会用这个名字操作这个对象。

    但是,这个苹果还没有出现呢,所以我们需要再写一句:

greenApple=newApple();

new在java中是一个关键字,这句话的意思是在程序中出现了一个新的苹果对象,叫做greenApple。这行代码在Java中叫做实例化对象。

    在实际开发中,我们会把上面的两行代码合并一下:

ApplegreenApple=new Apple();

用Java解释就是:我初始化了一个Apple对象,对象名为greenApple,即对象的初始化。

 

    恩,好了,ObjectClass,对象,一切都是那么完美,你会发现Java真是朴实啊,完全就是现实世界的翻版呢!

 

    我们接着来分析那个静止的画面,看,上面有一个苹果,众所周知,苹果有一系列的状态,比如颜色,重量,高度等等。好的,那么怎么用Java来表示这些状态呢,Java把这些称为一个Class的属性。用代码这样写:

classApple{

  String color;

  Double weight;

  Double height;

}

上面这些代码可能有些地方还不是很理解,不过无所谓了,你只需要知道一个Class的属性放在一个{  }作用范围中就行了。其他的以后再说。

    上面有一个绿苹果,我们想要描述它,我们会说,它是一个绿色的,1kg重,10cm高的苹果。用Java呢?

因此出现了这样一行代码:

greenApple.color="green";

greenApple.weight=1;

greenApple.height=10;

相信你大概能看懂这三行代码的意思:名字叫greenApple的这个对象颜色为绿色,重量为1,高度为10。那么“.”(点)代表什么?点出现在引用后面,点表示使用引用所代表的类型Apple中的属性color。意思就是:使color为绿色。

 

    接着,我们让时间继续流逝,暂停取消,过了一个月,绿苹果变成了红苹果,那么苹果自己颜色变了,我们会说:经过一段时间,绿苹果的颜色变成了红色。也就是说,苹果的状态改变了,那么怎么用程序来说呢?我们需要牵出一个概念来:方法,或者函数。代码如下:

classApple{

  String color;

  Double weight;

  Double height;

 

  //当需要时间经过一段时间时,调用这个方法

  void colorChange(){

    color="red";

  }

}

//是什么意思?是注释的意思,具体的以后再说。

void代表方法的返回值,暂时不管这些。

colorChange为方法的名字。

()代表了方法的标记。至于为什么需要有个(),以后再说。

{  }表示这个方法的范围。

color="red";就是方法中的内容了。

(关于方法的讨论,以后我会单独讲解,现在只要不阻碍你理解主要的知识就好了。)

那么,怎么调用这个方法呢?这样:

greenApple.colorChange();

同样,对象名字,点号,方法名字,方法的标志(一对括号)。

 

完整的代码就是:

ApplegreenApple=new Apple();

greenApple.color="green";

greenApple.weight=1;

greenApple.height=10;

System.out.println("经过了一段时间。。。");

greenApple.colorChange();

System.out.println("苹果的颜色现在是:"+green.color);

 

    好了,一个基本的面向对象思想已经有了,在Java中用Object来表示现实世界的物体,用Class来表示具体的不同类型的物体,用属性来表示物体的状态,用方法来表示状态的改变,对象由属性和方法组成。用“class类型 名字”来创建对象引用,用“new Class类型”来表示实例化了这个Class,用“名字=new Class类型”来表示将实例化的对象与这个名字绑定。需要调用Class中的属性和方法用点号,方法要加上方法的特殊标志“()”。好了,今天的完毕。

 

备注:今天只是能对Java的面向对象思想有一个了解,至于代码的写法以及原因,明天再说。所以不用深究代码。

本人申明一下:对于转载的,请申明来自“百度空间:紫色天空  http://hi.baidu.com/txtdown99 ”。谢谢!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值