什么是面向对象OOP(面向对象的三大特性)

2023-02-18 00:00:00 特性 面向对象 三大

什么是面向对象(面向对象的三大特性)

简介

学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.多态

说到多态,得先引入一张图
《什么是面向对象OOP(面向对象的三大特性)》
通过图中可以看出,多态的特性就是:
父类的引用指向了子类对象,即子类对象的地址赋值给了父类的引用。大白话就是,创建了一个子类的对象,但是对象类型是父类类型的。
多态有三个重要的性质
①对象类型不变
②对于引用,只能调用其引用类型中声明过的方法
③实际调用的时候,调用的是子类覆盖之后的方法

4.创建对象的过程

说到创建对象的过程,这个时候要区分情况对待,首先得看这个类有没有继承关系。
没有有继承关系的时候
① 分配内存空间,给类中的属性赋默认值值;
②初始化属性,给类中的属性赋初始值;
③调用构造方法,这个时候往往会给属性赋第三次值。

有继承关系的时候
跟没有继承关系的时候步骤差不多
① 给子类父类所有的属性分配内存空间,赋默认值;
②初始化子类属性,调用子类构造方法;
③初始化父类属性,调用父类构造方法。

ok,到这里面向对象就记录完了,其实面向对象就是一种编程思想,为了我们完成客户所需求的功能而产生的,剖析到最后,最初的想法还是为了满足不同的人的不同需求。最后说一下,以上仅代表个人观点,如有错误还请指出,有不同观点请在下方评论。看都看了,码字不易,点个赞再走呗!!!!!

    原文作者:从百草园杀到三味书屋&
    原文地址: https://blog.csdn.net/qq_44240587/article/details/101437719
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。

相关文章