一、面向对象:
对象:具体的实体属性(特征)
方法(操作)
二、类和对象
类是一组具有相同属性和方法的对象的集合
类是对象的抽象,对象是 类的实例(具体)
三、使用类来创建对象
类名对象名 = new 类名();
对象名.属性;
对象名.方法();
四、类的参数
形参:方法定义处的参数
实参:方法调用处传的值
形参和实参名字可以不一样,但是数据类型要一样,个数要一样,顺序要一样
五、构造方法:构造对象的时候使用(初始对象时)
public 类名(){ }
注意:构造方法没有返回值、构造方法名字和类名一样
六、this:当前对象
this.属性
this.普通方法()
本类构造方法的调用:this(参数)★必须放在第一句
七、方法重载:方法名相同、参数列表不同
1、在同一类中
2、方法名相同
3、参数的个数或者类型不同
4、与返回值、访问修饰符无关
八、成员变量和局部变量
1、成员变量:类的范围内声明的,在类的整个范围内都能用。也叫全局变量
局部变量:局部(方法里、代码体里)声明,在声明的范围内使用,叫局部变量
2、局部变量在使用前必须赋初始值
全局变量即使使用前没有赋初始值,系统默认会初始化
3、局部变量可以和全局变量同名,也可以不同名。同名的时候,就近使用
九、面向对象三大特性:封装、继承、多态
1、封装
1-1:封装步骤
1>把访问修饰符public改为私有访问修饰符private
2>设置getter/setter()方法
get——取.........值 set——给.........赋值
3>在set方法设置属性的存取限制
1-2:包机制
package 声明包
import 导入报
1-3:static关键字 在没有创建对象时,static初始化首先执行
1>static修饰方法→静态方法
2>static修饰成员变量→静态变量
3>static修饰代码块→静态代码块
2、继承:解决重用代码问题、符合is-a关系的设计
2-1:步骤:
1>定义父类
2>定义子类,继承父类(extends)
★单根继承,每个类只能有一个直接父类
2-2:子类访问父类成员
1>访问父类构造方法 ★必须在第一句
super(参数);
2>访问父类属性 ★不能访问父类的private成员
super.父类属性
3>访问父类方法
super.父类方法();
2-3:方法重写:
1>定义:
子类根据需求对从父类继承的方法进行重新编写、重写时,可以用super.方法的方式来保留父类的方法、构造方法不能被重写
2>规则
方法名相同、参数列表相同、返回值类型相同或者是其子类、访问权限不能严于父类
2-4:Object类
1>Object类是所有类的父类
2>equals()方法:是比较两个对象是否是同一个对象
3>instanceof:用于判断一个引用类型所引用的对象是否算是一个类的实例
3、多态:修改频繁,维护吃力 多态是一种行为
3-1:定义:同一种引用类型,使用不同的实例而执行不同操作
3-2:抽象方法:
1>普通方法:
修饰符 返回值 方法名(参数列表){ }
2>抽象方法
修饰符 abstract 返回值 方法名(参数列表);
★拥有抽象方法的类必须声明为抽象类(abstract)、但是,抽象类中不一定非要有抽象方法、抽象方法在子类中必须被实现,除非子类也是抽象类
抽象类不允许实例化
3-3:向上转型:
父类型 引用变量名=new 子类型();
★可以调用子类重写父类后的方法、此时不能调用子类特有的方法
3-4:向下转型
子类型 子类引用变量名=(子类型) 父类型引用变量;
3-5:多态应用
1>使用父类作为方法的形参
2>使用父类作为方法的返回值
十、接口:关键字:interface 接口是一种能力(方法),是一重约定
1、用法
1-1:变量:public static final
1-2:方法:public abstract
1-3:实现接口:implements
十一、异常 Exception
1、常见异常
InputMismatchException:数据格式不匹配的异常
ArithmeticException:算数异常(/ by zero)
NullPointerException:空指针异常
2、异常处理机制
2-1:关键字
1>try→执行可能产生异常的代码
2>catch→捕获异常
3>finally→无论是否发生异常,代码总能执行
4>throw→手动抛出异常
5>throws→声明异常,声明方法可能要抛出的各种异常
2-2:处理异常
1>try {
//尝试运行的代码(可能发生异常的代码)
} catch (异常类型ex) { catch:多重、可以捕捉多种类型的、
//对异常进行处理代码
ex.printStackTrace(); //打印异常堆栈信息 ex.getMessage(); //获得异常信息的提示,以字符串的形式返回
}
2>try { 可能发生异常代码
} catch(异常类型ex) { 对异常进行处理代码
}finally { 关闭流}
★不管try...catch...是否发生异常,都执行finally里面的代码块;只有在catch代码块里面输入System.exti(1);才是中断程序
3>try { 可能发生异常代码
}catch(异常类型ex) { 对异常进行处理代码; return;
}finally { 关闭流}
★执行顺序:try(发生异常对象)→catch(异常类型匹配)→finally→return(退出方法)
4>throws:声明方法内抛出各种异常、跟在方法名后面写、多个异常用逗号隔开、调用者可处理异常,也可继续抛出
5>throw:手动抛出异常 、位于方法体内部,可作为单独语句使用、抛出一个异常对象,且只能是一个异常
6>自定义异常:
继承Exception、RuntimeException、Throwable类
2-3、异常链:创建了新的异常但却保留了原有异常的信息