面向对象知识点整理

在学习C语言的时候,老师和我们说它是一门面向过程的语言

那么面向对象与面向过程之间有什么区别呢?

面向过程就是自己干

面向对象就是别人干


举例:我们去吃饭

重点 饭是怎么来的

自己做饭:买菜-洗菜-切菜-炒菜——面向过程 这种事情至始至终都是我们自己解决问题

1.我们处于执行者

2.相对耗费时间、精力,做出来的结果也不一定是最优的

点外卖/去食堂:面向对象——这件事是由别人去做的,我们只需要等待结果

1.我们处于指挥者

2.相对节省时间、精力,做出来的结果一般是可观的


三大特征

1.封装:将对象不需要让外界访问的成员变量和方法私有化,只提供符合开发者的意愿的公有方法来访问数据,保证了数据的安全和程序的稳定。将对象的属性和行为看成一个密不可分的整体,将者两者放入一个不可分割的对象中。(一般用private修饰)

访问级别访问控制修饰符同类同包子类(不同包)不同包
公共public允许允许允许允许
受保护protect允许允许允许不允许
默认允许允许不允许不允许
私有private允许不允许不允许不允许

2.继承:子类可以继承父类的属性和方法,使得子类具有父类相同的行为,并对其进行拓展。

(

class 父类 {}

class 子类 extends 父类{}

)

3.多态:同一种类型的对象执行同一个方法可以表现出不同的行为特征。

方法:重载与覆写

--重载:同一个方法名称,根据不同的参数类型与个数可以完成不同的功能。

--覆写:同一个方法,根据操作的子类不同,完成的功能也不同。

对象:父子类对象的转换

--子类对象变为父类对象: 父类 父类对象 = 子类实例 

Father father1 = new Son();

--父类对象变为子类对象: 子类 子类对象 = (子类)父类实例 

类与对象

类必须通过对象才可以使用,对象的所有操作都在类中定义。

定义一个类的时候,主要从属性和行为两个方面来说

-属性:可以量化的,用数据来表示,都是一些变量——成员变量

-行为:行为是一些列的动作,这些系列的动作可以用函数来封装表示——成员函数

一个类想要真正的进行操作,必须依靠对象,对象的定义格式:

类名称 对象名称 = new 类名称()

抽象类和抽象方法

没有方法体的方法称为抽象方法,在一个类中如果有抽象方法,那么这个类就称之为抽象类

格式:

  抽象类:abstract class 名称{}

  抽象方法:修饰符 abstract 返回值类型 方法名(参数){方法体}

使用原则:

1.抽象方法必须为public或者protect,缺省情况下默认为public

2.抽象类不能实例化,需要依靠子类采用向上转型的方式处理

3.抽象类必须有子类,使用extends继承,一个子类只能继承一个抽象类

4.子类必须覆写抽象类之中的全部抽象方法(如果子类没有实现父类的抽象方法,则必须将子类定义为abstract)

abstract不能与哪些关键字共存?

(1)private:abstract方法需要被重写

(2)final:abstract方法需要被重写。被final修饰的方法是不能被重写的 。

(3)static:abstract方法没有方法体,没有实现不能产生对象,静态方法需要对方法体执行内容,static是属于类的,类本身是已经存在的对象

(4)synchronized:同步需要具体操作才能同步,abstract是只有声明没有实现的

抽象类与接口的区别:

1.抽象类用abstract修饰,接口用interface修饰

2.抽象类中可以有抽象方法和非抽象方法,接口中的所有方法都是抽象的,实现一个接口时,接口中的抽象方法都要被重写

3.抽象类不能被普通类多继承,但接口可以多实现

4.抽象类中可以有构造方法、静态代码块和静态方法,接口中没有构造方法、静态代码块

5.抽象类中的变量可以是各种各样的,接口中不能含有成员变量,除了final和static变量

6.子类继承抽象类时需要在子类中重写所有的抽象方法,子类在实现接口时需要重写接口中所有的方法

7.抽象类和接口都不能被实例化

局部变量与成员变量的区别

所属空间

局部:栈内存当中,函数的所属空间里

成员:堆内存当中,对象的所属空间里

生命周期

局部:随着函数的进栈而创建,随着函数的弹栈而消失

成员:随着对象的创建而创建,随着对象的消亡而消亡

初始化

局部:如果没有初始化的值,那么后面不能调用

成员:有默认初始化-显式初始化-针对性初始化

作用域

局部:前提是在函数中,在最近的一对大跨号内

成员:在本类的内部是全局(静态不能调用非静态)

如何区别重名的成员变量和局部变量的调用?

通过this关键字进行区别

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值