zoukankan      html  css  js  c++  java
  • 什么是面向对象?

    说到这个面试题目,可以说是老生常谈啦。无论是对于新手还是老手,面对不同时期的程序员,都会有不同的理解,不同的思路。回答的内容深度也会大不相同。

    面向对象说到底就是一种思想,任何事物都可以看作是一个对象。在有些面试题目中也称之为OOP(Object Oriented Programming)。分开来解读就是:

    Object:对象、

    Oriented: 面向的

    Programming:程序设计

    那么这篇文章就以为java为例子,java是一个支持并发,基于类和面向对象的计算机语言,面向对象的开发具有以下的有点:

    代码开发模块化,便于维护。
    代码复用性强
    代码的可靠性和灵活性。
    代码的可读性和可扩展性。
    其实上面的还都是铺垫,面向对象主要的思想是:封装,继承,多态,抽象。

    封装
    封装就是模块化,把不同的功能,封装在不同的模块里。一个好的设计,应该有好的封装思路。这个不属于框架设计里了,属于编程人员对于功能的把握。以及对于封装的理解。

    切记,如果随意进行封装,太注重模块的封装,每一个小功能都封装成一个模块,那么对于日后的维护,会造成非常大的困扰。我曾经有位离职的同事,我交接了他的代码。他的代码优点是封装的很完全,但是缺点也是封装的太完全了。一点小的功能都封装起来,一个小方法写了6行左右,就跑到另外一个方法里了。给维护造成了非常的困扰。(当时我想打si他)

    但是不能因为封装可能出现上述的原因,就不封装了。比如一个相似的功能,你把他写在统一个方法里,不进行封装,那么,你每次进行修改了这个方法后,你都要提心吊胆,是否会影响其他的功能,测试人员,还要根据你的感觉,去测试其他的功能,无形中给自己和别人都添加了麻烦。

    在java中提供了4中修饰符,来实现封装。分别是default,public,private和protected。每一种修饰符都表示了不同的权限。就因为有了这四种修饰符:

    通过隐藏对象的内部结构,提高了程序的安全性。
    禁止对象之间的不良引用
    另外给出一个图帮助大家理解这4个修饰符

    作用域 当前类 同包 子类 其他
    private 支持 不支持 不支持 不支持
    default 支持 支持 不支持 不支持
    protected 支持 支持 支持 不支持
    public  支持 支持 支持 支持
    至于使用的场景嘛?

    public:更多得在写公共方法会使用到。

    private:在类中有些私有得方法会用到但是比较少,一般是在变量私有,使用get,set方法时,会配合public一起使用。

    default:在不写修饰符得情况下,默认为default修饰符。另外有个特殊的点,就是接口的方法不写修饰符,默认是public。而不是default

    protected:保护,更多得是用于框架层啦,就是子类得引用支持,像封装了struts。在controller层就必须继承某一个类一样。

    继承
    继承嘛,就简单很多了,就是给对象提供了从基类获取字段和方法得能力,java中提供了extends关键字。好处是在不修改原类得情况下,给现存得类添加新特性。对于程序得升级给了很大得思路。多态

    多态
    多态,相当于对于同一个接口类型,由多种不同的实现方式,所衍生出来的。

    抽象
    抽象,相当于把具体的实例中,把本质抽象出来。把行为和具体的实现进行分离开来,对于程序的保密起到一定的作用把。 

  • 相关阅读:
    MVP福利利用Azure虚拟机玩Windows Server 2012
    负载均衡的基本算法
    RavenDB:基于Windows/.NET平台的NoSQL数据库
    使用Autofac在ASP.NET Web API上实现依赖注入
    Mono 3 的默认Gc是Sgen
    MSDN 杂志 Windows 8 特刊
    AggSharp Agg的.NET 移植
    使用谷歌翻译/微软翻译迅速使你的博客支持多国语言
    Service Bus for Windows server
    用Xwt构建跨平台应用程序[转载]
  • 原文地址:https://www.cnblogs.com/hericwan/p/12400989.html
Copyright © 2011-2022 走看看