Java基础OOP面向对象

hi,大家好,我是终南有客,一个热爱自由和创造,喜欢探索和发现新事物的软件开发者……
想要获取更多信息,请关注(终南有客)公众号,了解最新消息

一.面向对象与面向过程比较

  通俗的讲:对象就是类的一个实例,注重事物的本质,特性.是将事物高度抽象化。接近人类思维的思考方式.改善了软件系统的可维护性
过程就是顺序,选择,循环、数组、函数,注重解决问题的过程.是一种自顶向下的编程.

二.面向对象的特征(封装.继承.多态)

一、封装

1.定义:封装最简单的理解就是包装,指隐藏对象的属性和实现细节,仅仅对外公开接口,即对象的内部状态对外界是透明的。
2.原则:“该隐藏的一定要隐藏,该公开的一定要公开。”

*对象的属性尽可能的私有,根据需要配上相应的 get/set方法。
*对象的方法根据需要决定是否公开,公开的是声明,隐藏的是实现。意义:使方法实现的改变对架构的影响最小化。

二、继承

1.定义:是一种由已存在的类型创建一个或多个子类型的机制.
2.父类到子类是从一般到特殊的关系。

*泛化:将不同子类中的共性抽象成父类的过程。
*特化:在原有父类的基础上加入一些个性的过程。
*原则:父类放共性,子类放个性。
3.继承的关键字:extends
4.Java 只支持单继承:一个类最多只有一个直接的父类。

*注:父子类之间的关系是树状关系,而多继承是网状关系。
5.父类中的私有属性可以继承但是不能访问,也可以说父类中的私有属性子类不能继承。

三、多态(美女、汽车)

1.定义:指引用变量拥有许多不同形式的能力
2.多态分为两种:编译时多态和运行时多态。

*编译时类型:主观概念,把它看作什么。
*运行时类型:客观概念,实际它是什么。
例:Animal a=new Dog();
指着狗问,这个动物是什么动物?
3.运行时多态的三原则:

*对象类型不变。
*只能对对象调用编译时类型中定义的方法。
*在程序的运行时,根据对象的运行时类型,找覆盖后的方法来调用。(运行时动态类型绑定)
4. 强制类型转换: 一定没有新对象生成。
5. 关键字:instanceof

*用法:引用 instanceof 类名 判断这个引用所指向的
对象是否属于这个类。
*用在强制转换之前,避免类型转换异常。
if(d instanceof Dog){
Dog dog = (Dog)d;
}
3.多态的作用:多态可以屏蔽不同子类对象之间的差异,
写出通用的代码,做出通用的编程,以适应需求的不断变化。

五大原则是
"单一职责原则"
"开放封闭原则"
"里氏替换原则"
"依赖倒置原则"
"接口分离原则"

三.类与对象的关系

1.类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象
2.对象就是一个真实世界中的实体,对象与实体是一一对应关系的,意思就是现实世界的每一个实体都是一个对象,所以对象是一个具体的概念。
3.两者关系:
类是对象的一个集合,对象是类的实例。
而对象的产生在Java中是使用new来实现的。

1)类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个体,但它本身不存在于现实世界上。
  2)对象是类的一个具体。它是一个实实在在存在的东西。
  3

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值