面向对象知识总结

面向对象

1.1概述

面向对象(OOP, Object Oriented Programming)是一种编程思想,通过这种思想可以把生活中复杂的事情变得简单化,从原来的执行者变成了指挥着,面向对象是基于面向过程而言的。

1.2优缺点

优点:易维护,易复用,易扩展,由于面型对象有封装,继承,多态的特性,可以设计出低耦合的系统,是系统更加灵活,更加易于维护
缺点:性能比面向过程低

2 特性

2.1封装

2.1.1概述

封装是指隐藏对象的属性和实现细节,仅仅对外提供公共的访问方式
好处:提高安全性和重用性

2.1.2 private关键字

是一个权限修饰符,用于修饰成员变量和成员方法,被私有化的成员只能在本类中使用,要想修改,对外提供公共的get和set方法。
get():提供公共的赋值方法
set():提供公共的取值方法

2.2继承

2.2.1概述

发生在父子类中,子类继承父类除私有变量的所有功能,无需重新编写父类已有的功能,可扩展新的功能

2.2.2 特点

使用了extends关键字
相当于子类把父类复制了一遍
java只能单继承
继承具有传递性
不能继承父类的私有成员
继承多用于功能的修改,子类在继承父类功能的同时,可进行功能拓展
是 is a 关系

2.3 多态

2.3.1概述

多态指一个实例具有多种形态,它是面向对象程序设计的一个重要特征
主要是指同一个对象在不同时刻,代表的对象不一样,指对象的多种形态

2.3.2特点

多态的前提是继承,要有方法的重写
口诀:编辑看左边,运行看右边
父类引用执行子类对象

3 重载和重写的区别

3.1重写 Override

发生在父类与子类之间
方法名 参数列表 返回类型 必须相同
子类的访问修饰符权限一定大于父类的访问修饰符权限

3.2重载 Overload

发生在同一个类中,是一个类中多态的一种表现
重载要求方法名相同,参数列表不同(参数列表不同:参数的个数,类型,顺序)
重载的时候,返回值的类型可以相同,也可以不同

3.3访问修饰符

public > protected > default > private

4 static

java中的一个关键字,用于修饰成员变量和成员方法,被修饰的成员为静态的

4.1特点

可以修饰成员变量 成员方法 代码块
随着类的加载而加载,优先于对象的加载
只加载一次 就会一直存在 不再开辟新的空间
全局唯一 全局共享
可以直接被类名调用
静态只等调用就静态 非静态可以随意调用
static 不能和 this 或者 super共用

4.2 静态变量

属于类 存储在方法区中 只有一份
常常通过类名.来访问

4.3 静态方法

属于类 存储在方法区中 只有一份
常常通过类名.来访问
静态方法中没有隐式this
不能直接访问实例成员

4.4静态块

属于类 在类被加载是自动执行 只执行一次
加载或初始化静态资源是使用

5 接口

接口是一种数据类型(引用数据类型)
有interface定义
只能包含常量和抽象方法
接口不能被实例化
接口是需要被实现/继承,实现/派生类: 必须重写接口中的所有抽象方法
一个类可以实现多个接口,用逗号分隔,若又继承又实现时,必须先继承后实现
接口可以继承接口

6 抽象类

由abstract修饰
包含抽象方法的类必须是抽象类
不包含抽象方法的类也可以声明为抽象类
抽象类不能被实例化
抽象类是需要被继承的,派生类:
重写所有的抽象方法
也可声明为抽象类
抽象类的意义:
封装派生类共有的属性和行为----代码复用
为所有派生类提供统一的类型----向上造型
可以包含抽象方法,为所有的派生类提供统一的入口,派生类的具体实现不同,但入口是一致的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值