5.面向对象
以类的方式组织代码,以对象的组织(封装)数据
三大特性:
封装:
封装:高内聚(类的内部数据操作自己完成) 低耦合(仅暴露少量的方法给外部使用)
属性私有,get/set
===================================================
继承:本质是对某一批类的抽象 java类中只有单继承 没有多继承 子类是父类的扩展 extends 继承是类和类之间一种关系 子类继承父类用extends
object类:java中所有的类都默认继承object类
super:
注意点:
1.super调用父类的构造方法,必须在构造方法的第一个
2.super必须只能出现在子类的方法或者构造方法
3.super和this不能同时调用构造方法
vs this :
代表的对象不同
this:本身调用者这个对象
super:代表父类对象的应用
前提:
this:没有集成也可以使用
super:只能在集成条件才可以使用
构造方法
this( )本类的构造
super() 子类的构造
===================================
方法重写:需要有继承关系 子类重写父类的方法
1.方法名必须相同
2.参数列表必须相同
3.修饰符:范围可以扩大 public》protected》default>private
4.抛出的异常:范围 可以缩小 但不能扩展 ClassNotFoundException -->Exception(大)
重写 子类方法和父类必须一致 方法体不同
重写都是方法的重写 和属性无关
非静态方法可以重写 重写的关键字是public
为什么需要重写:
1.父类的功能子类不一定需要或者不一定满足
2.alt+insert override
============================================
多态
对象是具体的事务 类是抽象的。是对对象的抽象
父类的引用指向子类
注意事项:
1.多态是方法的多态,属性没有多态
2.父类和子类 有联系【类型转换异常:ClassCastException】
3.存在的条件:有继承关系 方法需要重写 父类的引用指向子类对象 father f1= new Son();
static 属于类 不属于实例 不能重写
final 是常量 也不能重写
private 修饰的方法 也不能重写
##################
方法定义:
修饰符 返回值类型 方法名(...){
//方法体
return 返回值;
}
break 语句跳出switch,结束循环 return结束方法
####################
方法调用:
静态方法:static 修饰
非静态方法:
//实例化这个类new
//对象类型 对象名=对象值;
形参和实参
值传递和引用传递:
引用传递是传递一个对象,本质还是值传递
this关键字
###############
类是一种抽象的数据类型,是对某一类事物整体描述/定义
对象是抽象的具体实例
使用new关键字创建对象,创建的时候,除了分配空间内存外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用
#############
构造器详解:
作用:
1.使用new关键字必须要有构造器,本地是在调用构造器
2.构造器一般用来初始化值
一个类即使什么都不写,它也会存在一个方法
总结:
1.类名和方法名必须相同
2.没有返回值
定义了有参构造之后,如果想要使用无参构造,显示的定义一个无参构造
#######################
instanceof 和类型转换
instanceof:判断一个对象是什么类型 2个类之间是否存下父子关系
//类型之间的转换
父类 子类
1.父类引用指向子类对象
2.子类转换为父类 向上转型 父类转为子类 向下转型 需要强制转换,可能丢失一些方法
3.方便方法调用 减少重复的代码
抽象:继承 多态 封装
===================================
static 关键字详解
非静态方法可以访问这个类中的静态方法的所有东西
静态方法可以方法静态方法,不能调用普通方法
===================
抽象类
abstract 可以修改方法 抽象方法 可以修饰类 抽象类
抽象类中可以没有抽象方法 但有抽象方法的类一定要声明为抽象类
抽象类不能使用new关键字创建对象 是用来让子类继承的
抽象方法 只有方法的声明 没有方法的实现 是让子类实现的
子类继承抽象类 必须要实现抽象类中没有实现的抽象方法 否则该子类也要声明为抽象类
======================
接口的实现和定义
接口可以多继承 声明接口的关键字是interface
接口中的所有定义都是抽象的 public abstract的
一个类是可以实现接口 通过implements 实现接口的类 需要重写接口中的方法
作用:
1.约束
2.可以定义一些方法,让不同的人实现
3.方法都是public abstract
4.接口不能被实例化 因为没有构造方法
5.可以实现多个接口 通过implements实现
6.实现接口 必须重写里面的方法
7.public static final
===================
内部类:就是在一个类的内部再定义一个类
成员内部类
静态内部类
局部内部类
匿名内部类:没有名字初始化类 不用将实例保存再变量中
======================
异常机制:
Error 和Exception的区别:
Error通常是灾难性的致命的错误 是程序无法控制和处理的 当出现这类错误时 Java 虚拟机(JVM)一般选择终止进程,Exception通常情况下时可以被程序处理的
异常处理机制
try:监控区域
catch (想要捕获的异常类型):捕获异常
finaly:无论是否有异常,finaly 都会被执行
throw:主动抛出一个异常 在方法里面用
if(b==0){
throw new Armtimeexception();
throws:在方法上抛出异常
public void test(int a,int b) throws Armtimeexception {}
假设捕捉多个异常,要从小到大
快捷键:Ctrl+Alt+T

浙公网安备 33010602011771号