java面向对象编程杂谈

Java程序的发展经历了面向过程,面向对象两个阶段。什么是面向过程和面向对象呢?其实面向过程就是一种以“事件”为中心的编程思想。而面向对象是一种以“事物(即对象)” 为中心的编程思想。打个比喻,面向过程就是不用想去做什么样的盒子,随机取工具就开始制作。而面向对象就是先想好做一个什么样的盒子,再去找对应的工具去做。


在此我就重点谈下java的面向对象编程吧!首先我认为面向对象编程是相对于面向过程而言的,它是为了解决一些大的复杂的工程而产生的一种编程方法。面对对象它是以人的认识事物的思维角度来讲的,而不是说按照机器的二进制的,面向对象思想主要提高了编程的简易性。面向对象有四大特性,分别是抽象、继承、多态、封装。


所谓的抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,忽略与当前主题和目标无关的那些方面,将注意力集中在与当前目标有关的方面。抽象包括行为抽象和数据抽象两个方面。


继承就像孩子与父亲的关系一样,在定义和实现一个类的时候,在一个已经存在的类的基础之上进行,把这个父类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。继承是子类自动共享父类数据和方法的机制,提高了软件的可重用性和可扩展性。


多态就是通过传递给父类对象引用不同的子类对象从而表现出不同的行为(即父类引用指向子类对象)。多态分离出做什么和怎么做,由父类或接口去定义要方法(做什么),由子类去实现这个方法(怎么做),将接口和实现的分离开来。


封装:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口来使用类的成员或调用对象的方法。如通过getterssetters实现对对象属性的读和写。


通过对面向对象的四大特性的理解,我认为封装是为了方便调用类库里面已经写好的函数;继承是方便对已有函数的功能进行直接调用和扩展。按照原则,java中已经写好的类库会被打包成jar包,不允许调用者更改里面的代码。但是你可以通过其中的抽象类或者接口,根据具体的业务逻辑进行功能的扩展。多态的作用是,可以实现对继承对象的统一调度,可以说是面向对象的精髓所在。


我认为对象就是有具体意义的事物(其实就是java中的一个参数,88等等,当你Teacher te = new Teacher() 后 这个te参数就实际代表了 一个Teacher他就是一个有意义的对象,而某一个方法teachTreacher te)那么 这个teach方法就可以看成Teacher可以teach的一种行为),他无影无形,但又实际存在。笼统的就可以说面向对象,就是针对对象的特点(Teaacher的性别、年龄)和行为(teach方法)的一系列操作。


Java23种经典设计模式就很好的阐述了java面向对象的编程思想。首先先谈谈我对代理模式的理解吧。代理,顾名思义就是帮助别人做事,代理模式,为其他对象提供一种代理以控制对这个对象的访问,代理模式使得代理对象控制具体对象的引用。代理几乎可以是任何对象,文件,资源,内存中的对象,或者是一些难以复制的东西。代理模式很好的运用了java的封装性,增强了安全性和使得代码简洁明了,使得代码充分解耦。代理又分为静态代理和动态代理两种。 静态代理是由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。动态代理是在程序运行时,运用反射机制动态创建。


其次,适配者模式也很好的运用了java面向对象的编程思想。适配就是由“源”到“目标”的适配,而当中链接两者的关系就是适配器。它负责把“源”过度到“目标”。适配器模式有2种,第一种是“面向类的适配器模式”,第二种是“面向对象的适配器模式”。先说“面向类的适配器模式”。顾名思义,这类适配器模式就是主要用于,单一的为某个类而实现适配的这样一种模式。类的适配模式用于单一源的适配,由于它的源的单一话,代码实现不用写选择逻辑,很清晰;而对象的适配模式则可用于多源的适配,弥补了类适配模式的不足,使得原本用类适配模式需要写很多适配器的情况不复存在,弱点是,由于源的数目可以较多,所以具体的实现条件选择分支比较多,不太清晰。适配器模式主要用于几种情况:(1)系统需要使用现有的类,但现有的类不完全符合需要。(2)讲彼此没有太大关联的类引进来一起完成某项工作(指对象适配)。当你想实现一个接口但又不想实现所有接口方法,只想去实现一部分方法时,就用中默认的适配器模式,他的方法是在接口和具体实现类中添加一个抽象类,而用抽象类去空实现目标接口的所有方法。而具体的实现类只需要覆盖其需要完成的方法即可。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

两只橙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值