三大特性:封装,继承,多态
静态方法用static关键字修饰的方法
可以用:类名.方法名 来调用
类加载时会加载static修饰的方法
非静态方法没有static关键字修饰的方法
需要new对象,通过对象来调用方法
new对象时才加载
类与对象的关系以类的方式组织代码,以对象封装数据
一个类什么都不写,也会有一个构造方法
方法名与类名相同
使用new关键字,自动调用构造器
一旦定义有参构造,无参构造必须显示给出
封装程序设计得方法:高内聚,低耦合
属性私有:private修饰
提供public 的get,set 来操作
继承意义:1.提高程序的安全性,保护数据
2.隐藏代码的实现细节
3.统一接口
4.系统可维护性增加
Student(子类) extends Person(父类)
子类继承了父类,就会拥有父类全部方法,属性
所有类都是Object的子类
Java中只有单继承没有多继承
super关键字,调用父类的属性,方法
super.父类方法/父类属性
方法重写子类隐藏代码,调用父类无参构造
super();必须在构造方法的第一行
super必须只能出现在子类的方法或构造方法中
super和this不能同时调用构造方法,都必须在第一行
this()调用本类构造
super()调用父类构造
被final修饰后不能被继承
只与非静态方法有关
方法名相同,参数列表相同
范围可以扩大
public>protected>default>private
抛出异常:范围可以缩小,不能扩大
子类重写父类的方法
@override
对象能执行哪些方法主要看左边的类型,和右边关系不大
多态父类的引用指向子类
Person p = new Student();
Object obj = new Student();
Student 能调用的方法都是自己的或者继承父类的
Person父类,可以指向子类,但是不能调用子类的方法
tips:
1.多态是方法的多态,属性没有多态
2.父类和子类有联系
3.存在条件:继承关系,方法需要重写,父类指向子类;
instanceof类型转换
两边有关系X instanceof Y;ture
子类转父类可能会丢失自己的方法
static静态方法,直接用类名.方法名
静态变量,直接用类名.变量名
静态代码块:和类加载时一起加载,且只会执行一次
匿名代码块,优先于构造方法执行
抽象类abstract
1.用在方法上,只有方法名字没有方法体
2.抽象类的所有方法,继承后都必须实现父类的抽象方法,单继承
3.接口可以多继承
public abstract void doSomething();
特点:
1.不能new抽象类,只能靠子类来实现,new子类
2.抽象类里面可以有普通方法,抽象方法必须在抽象类中
接口接口中的方法都是public,abstract
一个类可以实现接口
用 implement,重写接口中的方法
可以实现多个接口
接口中定义的变量,一定是public,static,final
接口中没有构造方法
内部类内部类可以获取外部类的私有属性
异常机制Exception
try catch
try{
System.out.println(a/0);
}catch(ArithmeticException e){
System.out.println("分母不能为0!");
}finally{
System.out.println("finally");
}
//可以不用finally,假设IO,资源,在finally里面关闭
捕获多个异常
try {
}catch(){
}catch(){
}
主动抛出异常,在方法内部用throw
if(b==0){
throw new ArithmeticException();
}
在声明方法中抛出异常throws
public void test(int a,int b) throws ArithmeticException{
}
自定义异常
继承Exception



