什么是面向对象OOP(面向对象的三大特性)
什么是面向对象(面向对象的三大特性)
简介
学java的都知道,java语言有三个特性,也可以说是三个优点,就是
1.简单性: java语言相对于C语言,C++来说比较简单。
2.跨平台:java语言编写的代码可以在不同的操作系统运行,即windows、android 、ios、linux等等,也是软件、计算机硬件和软件的桥梁、可以调用硬件资源。
3.纯面向对象:这个就是今天要记录的重点,编程语言发展到C++的时候已经具备了面向对象的特性,而java相对于C++面向对象更加的纯粹。
什么是面向对象
有关于面向对象这个特性,网上的说法众说纷纭,百度一查,各路神仙各抒己见,说法不一,在这里我仅发表一下个人看法。
首先,面向对象简称OOP(Object Oriented Programming),翻译过来是面向对象程序设计,顾名思义,所谓”对象”在显式支持面向对象的语言中,一般是指类在内存中装载的实例,具有相关的成员变量和成员函数(也称为:方法)。面向对象的程序设计完全不同于传统的面向过程程序设计,它大大地降低了软件开发的难度,使编程就像搭积木一样简单,是当今电脑编程的一股势不可挡的潮流。
面向对象是一种编程思想,java程序员在编写代码的时候,将功能和业务逻辑封装在方法中,以创建对象的方式,调用对象中的方法来完成某项功能的思想就是面向对象。OOP为软件分层提供了前提条件,控制层调用业务层方法,业务层调用持久层方法,使得项目结构更加清晰,类与类之间实现了高内聚,低耦合,程序员分工合作,各司其职,从这个角度来讲,OOP就是一种纵向的编程思想。
面向对象的三大特性
1.封装
在说封装之前,我们先要看一下java的四大权限修饰符!!
修饰符 | 释义 | 作用范围 |
---|---|---|
public | 公开的 | 本类中,同一个包下,不同包需要导包 |
protected | 受保护的 | 用来保护子类,本类中,同一包下 |
空 | 默认的 | 本类中,同一包下 |
private | 私有的 | 本类中 |
封装起到一个保护的作用,能提高程序的安全性,对类中的属性进行封装。
具体实现方式:
① 私有化属性
private(私有的) 可以写在属性前面,用来修饰属性,被修饰的属性称之为私有属性,只能在本类中使用。
②提供get/set方法
set方法 ==》赋值
get方法 ==》取值
get方法 ==》 参数表为空
set方法 ==》 参数表不为空
get方法 ==》 返回值类型不能是void
set方法 ==》 返回值类型是void
2.继承
继承,顾名思义,意思就是一个类继另外一个类的功能,继承其他类的类称为子类,被继承的类称为父类(也叫超类或者基类)。
继承的作用:
①减少冗余代码
②继承的时候,子类可以使用父类和子类中所有的方法,但是private修饰的方法除外
③单继承,一个子类只能有一个父类,但是一个父类可以有多个子类
说道继承这儿,就涉及到了方法的重载(overload)和方法的重写(override)
方法的重载(overload):在同一个类中,方法名一样,参数表不同的两个方法称之为重载。
方法的重写(override):子类继承父类,子类相对于父类满足以下条件:
方法名,参数表,返回值都相同,权限修饰符相同或者更广。
调用方法的时候,如果子类和父类中都有这个方法,优先调用子类中的。
3.多态
说到多态,得先引入一张图
通过图中可以看出,多态的特性就是:
父类的引用指向了子类对象,即子类对象的地址赋值给了父类的引用。大白话就是,创建了一个子类的对象,但是对象类型是父类类型的。
多态有三个重要的性质:
①对象类型不变
②对于引用,只能调用其引用类型中声明过的方法
③实际调用的时候,调用的是子类覆盖之后的方法
4.创建对象的过程
说到创建对象的过程,这个时候要区分情况对待,首先得看这个类有没有继承关系。
没有有继承关系的时候:
① 分配内存空间,给类中的属性赋默认值值;
②初始化属性,给类中的属性赋初始值;
③调用构造方法,这个时候往往会给属性赋第三次值。
有继承关系的时候:
跟没有继承关系的时候步骤差不多
① 给子类父类所有的属性分配内存空间,赋默认值;
②初始化子类属性,调用子类构造方法;
③初始化父类属性,调用父类构造方法。
ok,到这里面向对象就记录完了,其实面向对象就是一种编程思想,为了我们完成客户所需求的功能而产生的,剖析到最后,最初的想法还是为了满足不同的人的不同需求。最后说一下,以上仅代表个人观点,如有错误还请指出,有不同观点请在下方评论。看都看了,码字不易,点个赞再走呗!!!!!
原文地址: https://blog.csdn.net/qq_44240587/article/details/101437719
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
相关文章