java4. 面向对象编程(2)——四大特征
封装、继承、多态一般是这三个还有一个是抽象
一、抽象
(1)简单的理解
我们在前面去定义一个类的时候,实际上就是把一类事物、的共有属性和行为提取出来,形成一个物理模型(模板)这种研究问题的方法称为抽象
二、封装
——如何理解
封装就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有通过被授权的操作(成员方法)才能对数据进行操作。
——访问控制修饰符
Java提供四种访问控制修饰符号控制方法和变量的访问权限:
①公开级别,用public修饰,对外公开
②受保护级别:用protected修饰,对子类和同一包中的类公开
③默认级别:没有修饰符号,向同一个包的类公开
④私有级别:用private修饰,只有类本身可以访问不对外公开
4种访问级别的访问范围
1 | 访问级别 | 访问控制修饰符 | 同类 | 同包 | 子类 | 不同包 |
2 | 公开 | Public | √ | √ | √ | √ |
3 | 受保护 | Protected | √ | √ | √ | × |
4 | 默认 | 没有修饰符 | √ | √ | × | × |
5 | 私有(不能被继承) | Private | √ | × | × | × |
包
一、包的必要性
注意:
1、同一个包中的定义的类名不能相同
2、包名一般小写
二、包——三大作用
-
- 区分相同名字的类
- 当类很多时,可以很好的管理类
- 控制访问范围
三、包——打包命令
Package com.hanshunping
四、包——命名规范
小写字母
五、常用的包
Java.lang.* 包 自动引入
Java.util.* 工具包
Java.net.* 网络开发包
Java.awt.* 包 窗口工具包
六、包——如何引用包
语法:import 包
比如: import java.awt.*;
我们引入包的主要目的是使用该包下的类
三、继承
——必要性
继承可以解决代码复用,让我们的编程更加靠近人类的思维,当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过extends来继承和声明
Class 子类 extends 父类
这样,子类会自动的拥有父类的某些属性和方法
——注意事项
-
-
-
- 子类最多只能继承一个父类(指直接继承)可以继承多个接口,C++可以多个继承
- Java所有类都是object类的子类
- Jdk6中有202个包377个类,接口、异常、枚举、注释和错误。
-
-
4在做开发的时候,建简单的议多用jdk帮助文档
-
-
-
- 如果不希望某个属性和方法被继承,可声明为私有
-
-
四、方法重载
——概念
简答的来说就是类的同一种功能的多种实现方式,取用与那种那个方式,取决于调用者所给的参数
——注意事项
- 方法的方法名相同
- 方法的参数类型,个数,顺序至少有一样不同
- 方法的返回类型可以不同
- 方法的修饰符可以 不同
- 如果仅仅只是返回类型不一样,是不能构成重载的
- 如果仅仅只是访问控制修饰符不同,也不能构成重载
五、方法的覆盖(override)(重写)
——定义
简单的说:方法覆盖就是子类有一个方法,和父类的某个方法的名称、返回类型、参数一样,那么我们就说子类的这个方法覆盖了父类的那个方法。
——注意事项
1、子类方法的返回类型,参数,方法的名称,要和父类方法的返回类型,参数,方法名称完全一样,否则编译出错。
2、子类方法不能缩小父类方法的访问权限。