【JAVA】面向对象编程总结

1.面向对象程序设计的概述
要了解面向对象编程(Object-oriented Programming,OOP),那我们也要大概了解一下面向过程(Process-oriented Programming)

面向过程:
面向过程的结构化开发语言适合早期的“作坊式”开发,但是随着软件规模的扩大,这种开发方式的弊端也逐渐显示出来,对于一些规模较小的问题,将其分解为过程的开发方式比较理想和简单的能完成程序开发,但是如果遇到规模较大的问题,面向过程就变的复杂杂乱,这时候面向对象的优势就体现的淋漓尽致,在此大环境下产生了一种新的开发思想——面向对象

java是完全面向对象的,必须要熟悉OOP(也就是面向对象程序设计)才能够编写出java程序,面向对象的程序有对象组成,每个对象包含对用户的特定功能部分和隐藏的实现部分,但是从根本上说,只要对象能够满足要求,那么就不要关心这个功能具体的实现过程也就是说在OOP中,不必要关心对象的具体实现,只要能够满足用户的需求即可

2.类
类是构造对象的模板或蓝图,我们可以将类想象成是工程师建筑时的图纸,那么对象则是建造出的一栋栋大楼房屋建筑,由类构造对象的过程称为创建类的实例
类是java中的最基本的元素,任何操作都要在类中完成,如方法、构造函数、参数的传递等,用java编写的所有代码都位于某个类的内部,标准的java库提供了几千个类,这些类的功能强大,很多地方都需要用到这些类,但是这些类不能够完全提供给我们所需要的类,所以我们需要自己手动来创建出一些自定义的类,以便解决程序设计中的问题

OOP中的一个原则可以让自定义java类变的轻而易举,那就是我们熟悉的继承(inheritance) ,通过扩张一个类来建立另外一个类的过程就称为继承。

3.对象
要想使用OOP,我们一定要搞清楚对象的三个主要特性
(1)对象的行为(behavior) —— 可以对对象施加那些操作,或可以对对象施加哪些方法?
(2)对象的状态(state)—— 当施加那些方法时,对象如何响应?
(3)对象的标识(identity) —— 如何辨别具有相同行为与状态的不同对象?
同一个类的所有对象实例,由于支持相同的行为而具有家族式的相似性,对象的行为是可以用调用的方法定义的
每个对象都保存着描述当前特性的信息,这就是对象的状态,对象的状态不会自发的发生改变,对象的状态的改变必须要通过调用方法实现注意:如果不经过方法调用就可以改变对象的状态,那么只能说明封装遭到了破坏
作为一个类的实例,每个对象的标识永远是不同的,状态常常也存在差异
对象的状态影响它的行为:例如如果一个订单“已送货”或者“已付款”,就应该拒绝调用具有增删订单中条目的方法,反过来,如果订单是“空的”,即还没有加入预定的物品,这个订单就不应该进入“已送货的状态”

4.识别类
在面向过程程序设计中,必须要从顶部的main函数开始编写程序,但是在面向对象程序设计中,没有所谓的“顶部",我们需要首先从设计类开始,然后再往每个类中添加方法
识别类的简单规则是在分析问题的过程中寻找名词,而方法对应着动词,当然这种规则指数一种经验论,在创建类的过程中,哪些名词和动词是重要的完全取决于个人的开发经验和项目的要求。

5.类之间的关系
在类中常见的关系有:
(1)依赖(”uses - a")
(2) 组和(“has - a")
(3) 继承(”is - a")
依赖是一种最常见最明显的关系,如果一个类的方法操纵另一个类的对象,那么我们就说一个类依赖于另一个类
在实际的工作当中,我们应该尽可能的将相互依赖的类减至最少,也就是说让类之间的耦合最小
组和是一种具体且易于理解的关系,聚合关系意味着类A的对象包含类B的对象
继承则相当的重要,被继承的类称为父类或者超类,另外一个类称为子类,子类

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值