前言
面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。
一.封装
访问修饰符:private--->私有
public---->公有
protected->保护
default--->普通
非访问修饰符:static,final,abstract,synchronized,volatile
static---静态 将归属改为类
final----常量(常搭配static使用) 需在定义时赋值
普通方法可访问:静态变量,普通变量
静态方法可访问:静态变量
封装前包名的写法:(全小写)域名倒置.功能
封装的功能:保护数据安全,控制数据访问权限
二.继承
1.继承
关键字:extends
示例代码:
public class abc extends ABC {
}
super 本身无意义,搭配变量名使用,搭配变量时指父类对象中的该变量
注:子类只能继承一个父类----单继承
私有化数据无法被继承
2.抽象类
关键字:abstract ---用来定义规则
示例
public abstract class abc{
}
规则:
1.不能创建对象
2.不能写构造方法
3.可以有正常的属性和方法
4.可以有抽象方法
3.构造方法 -用来创建类的对象
示例
public 类名 (){
代码块中会写一些跟类初始化相关代码
}
规则:
1.类在创建对象时,必须创建一个构造方法,才能创建对象,不写的话,java会提供一个无参无代码构造
2.不同构造方法通过参数区分,只要参数列表(数量不同,顺序不同,类型不同)不同,可以创建无数的构造方法
4.方法重载
规则:
1.方法名相同
2.参数列表(数量不同,顺序不同,类型不同)不同
3.同一个类中才会发生
4.重写与重载不同
面试题:
重写与重载有什么区别?
override与overload有什么区别?
5.抽象方法---定义规则
示例:
public abstract void abc ();
void abc();
无方法体,只规定返回值,参数......
规则:
1.抽象父类可以有抽象方法
2.抽象方法只能在抽象类中
3.子类继承一个抽象父类,必须重写其中的所有抽象方法
4.抽象方法————定义方法编写的规则
6.接口 interface
implements 实现接口
规则:
1.接口中的方法必须是全局抽象方法
2.接口中的变量都是全局静态变量
注:接口中只能写抽象方法
三.多态和异常
1.多态
instanceof 对比数据类型
端口(父类) abc = new.子类;
相同的数据类型,存放不同的内容
需要具有相关性
1.自动转换,向上转换
小类型 new给 大类型 例如:int a = 5; double b = a;
2.强制类型转换,向下转换
小类型 abc = (小类型)ABC; 例如:double c=3.875; int a = (int)c;
2.异常
Error--->错误
Exception--->异常
1.IOException 读写异常
2.RunTimeException 运行时异常
常见异常:
1.ArithmeticException----------------算术错误,如:0当除数
2.ArrayIndexOutOfBoundsException-----数组下标越界
3.NullPointerException---------------空指针异常
4.ClassNotFoundException-------------无法加载到所需的类
5.IllegalArgumentException-----------方法接收到非法参数
6.ClassCastException-----------------对象强制类型转换出错
7.NumberFormatException--------------数字格式转换异常,如:把‘a‘转换为数字
错误不可避免,异常可解决
1.解决异常办法:
try{
代码块; try中的代码执行出异常时
}catch(Exception e){
可以写无数个catch catch会匹配并捕获异常,捕获到后会继续执行后续代码
}finally(){
代码块; 无论有无异常,都会运行finally
}
2.不解决异常的办法:
throws ______; -------抛出异常
public void abc() throws
创建异常:throw
throw new Exception(异常信息);
总结:
try中写正常代码,当产生异常时会被catch捕获,finally无论是否捕获到异常,都会执行
throw是自定义异常
throws是抛出异常,让调用方法的地方进行异常处理