对象

来源:互联网 发布:最准的蓝球算法 编辑:程序博客网 时间:2024/04/25 17:35

       面向对象编程(Object-oriented Programming OOP)是计算机语言的一次革新,对程序员来说,就是不用受限于特定的问题。

 

       什么是对象?

       万物皆对象,具体的抽象的,只要是你想要关心的或者关注的,都可以作为对象。

 

       对象的特点?

       对象具有状态和行为,状态就是包含的元素(数据),行为就是方法(对数据处理的过程)。当然对象的存在还要有一块存储的区域,在内存中有一段唯一的内存。完整的对象也可表述为 具有状态、行为和内存标识。

 

       面向对象的特性?

       1.封装 对属性和方法进行访问权限的保护。

       2.继承 为实现代码复用或者共享,生成一个新的“实例”。

       3.多态 继承解决了代码复用的问题,随之而来的是,新的实例之所以存在,不是为了复用,而是新的需要,也就是实现新的功能。原始的对象的行为,在新的实例中有不同的实现,于是需要更改行为的内部操作。由此产生了重写(override)概念。既然是对象,比如人,具有行为:工作。工作的种类很多,程序员要编码,销售人员要推销,司机师傅要开车。销售人员可能需要开车去寻找客户,于是对于他的工作,既有可能是向客户推销产品,也有可能包含开车去客户。但是都属于行为——工作!于是,要对同一个行为有不同的实现,在java面向对象中就是多态,对于具体方法的实现,要根据不同的参数来完成。也就是说,在java中方法的唯一标识为方法名和参数列表。

 

       upcasting 既然面向对象有继承并且方法有多态的实现,我们可能有一个方法是处理一个基类,这个方法肯定也可以处理它的子类,并且应该是绝对安全可靠的。比如 Person为基类,有两个子类 Driver,Programmer。 方法earnMoney(Person p){*** p.work();***}。然后方法传递参数时候,传递Driver实例d,earnMoney(d);这个调用时安全的,而且方法知道实际运行应该调用的是Driver的work而不是基类Person的。

 

  ps:我不是web浏览器的杀手,为什么我的浏览器总是死掉。先是IE崩溃,后来是chrome……

原创粉丝点击