Java面向对象

面向对象

面向对象与面向过程

面向对象 (Object Oriented,OO) 的思想对软件开发相当重要,它的概念和应用甚至已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD 技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。

面向对象三大特性

面向过程 (Procedure Oriented) 是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。

笔者的理解:“面向过程”是做一件事,“面向对象”是造一堆东西。

形象说明

我们用把大象装进冰箱进行说明。

面向过程:

为了把大象装进冰箱,需要3个过程。

  1. 把冰箱门打开(得到打开门的冰箱)

  2. 把大象装进去(打开门后,得到里面装着大象的冰箱)

  3. 把冰箱门关上(打开门、装好大象后,获得关好门的冰箱)

每个过程有一个阶段性的目标,依次完成这些过程,就能把大象装进冰箱。

面向对象:

为了把大象装进冰箱,需要做三个动作(或者叫行为)。

每个动作有一个执行者,它就是对象。

代码实现

面向对象三大基本特性

封装

隐藏实现

在这里插入图片描述

继承

接口的重用。

通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。

在这里插入图片描述

多态

所谓多态就是指一个类实例的相同方法在不同情形有不同表现形式。

在这里插入图片描述

面向对象设计目的

强内聚、低耦合,从而使系统

  • 易扩展 - 易于增加新的功能
  • 更强壮 - 不容易被粗心的程序员破坏
  • 可移植 - 能够在多样的环境下运行
  • 更简单 - 容易理解、容易维护

面向对象的五大基本原则

单一职责原则(Single-Responsibility Principle)

其核心思想为:一个类,最好只做一件事,只有一个引起它的变化。

职责过多,可能引起它变化的原因就越多,这将导致职责依赖,相互之间就产生影响,从而大大损伤其内聚性和耦合度。

专注,是一个人优良的品质。同样的,单一也是一个类的优良设计

开放封闭原则[(Open-Closed principle)

其核心思想是:软件实体应该是可扩展的,而不可修改的。也就是,对扩展开放,对修改封闭的。

对于扩展是开放的 (Open for extension)。

对于更改是封闭的 (Closed for modification )。

总之,不需要修改软件实体(类、模块、函数等),就应该能实现功能的扩展

里氏替换原则(Liskov-Substitution Principle)

其核心思想是:子类必须能够替换其基类。

里氏替换原则是关于继承机制的设计原则,违反了Liskov替换原则就必然导致违反开放封闭原则。

接口分离原则(Interface-Segregation Principle)

其核心思想是:使用多个小的专门的接口,而不要使用一个大的总接口。

具体而言,接口隔离原则体现在:接口应该是内聚的,应该避免“胖”接口。一个类对另外一个类的依赖应该建立在最小的接口上,不要强迫依赖不用的方法,这是一种接口污染。

依赖倒置原则(Dependecy-Inversion Principle)

其核心思想是:依赖于抽象。

高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。

创建对象的方式

  1. 使用关键字new一个对象

  2. 使用反射机制

    User user = (User)Class.forName("xxx.xxx.User").newInstance(); 
    User user = User.class.newInstance();
    
  3. 使用clone方法

  4. 反序列化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值