目录
1.面向对象
面向对象:万事万物皆为对象,凡是客观存在的
对象的组成:功能+属性
类与对象的关系
类是用来描述对象的,对象是根据类创建的
创建对象格式:
类名 对象名= new 类名();
调用属性和方法:
对象名.属性:
对象名.方法();
2.函数
函数:用来实现某个功能的代码块
格式:
修饰符 返回值类型 函数名([参数]){
实现功能的代码
[return ]
}
函数分类:
有参数,有返回值
有参数,无返回值
无参数,无返回值
无参数,有返回值
重载:同类中,方法名相同,参数列表不同,返回值类型可同可不同构造函数:是一个特殊的函数,与类名相同,没有返回值类型。可以重载
格式:
public 类名([参数列表]){
}
作用:初始化对象
执行时间:创建对象时执行
创建对象格式:
类名 对象名 = new 构造函数([参数列表]);
this:当前对象
this.属性:当前对象的属性
this([参数列表]):当前对象的构造函数
super:父类
super.属性:父类的属性
super([参数列表]):父类的构造函数
3.面向对象的三大特征
封装:私有化属性,给私有属性提供公开方法
1、私有属性:private
private String name;
2、提供公开两个公开方法
get:取值方法
public String getName(){
return name;
}
set:赋值方法
public void setName(String name){
this.name = name;
}
继承extends:子类继承父类中所有的非私有属性和方法,构造函数不会被继承
格式:
public class 子类 extends 父类呀{
[子类独有的属性和方法]
}
Java中的继承是 单继承
所有的类都直接或间接继承于 Object 类
重写:在继承关系下,子类重写父类中方法。
方法名相同,参数列表相同,返回值类型相同
多态:一个对象多种形态
创建对象格式:
引用类型 引用对象 = new 实际类型([参数列表]);
父类 对象名 = new 子类([参数列表]);
接口 对象名 = new 实现类([参数列表]);
引用对象调用方法时:
只能调用父类中有的方法,如果子类重写了父类的方法
才会调用到子类重写的方法
想要调用子类中独有的方法:
强转:把引用对象转换为实际对象
Animal a = new Dog();
Dog dog = (Dog)a;
instanceof:判断对象是否属于某种类型
格式:
对象 instanceof 类型
返回值:boolean
4.静态常量
静态:static 共享
用static修饰的属性和方法称为静态属性和静态方法
没用用static修饰的属性和方法称为成员(实例)属性和成员(实例)方法
静态属性和静态方法调用:
类名.方法名([参数列表]);
类名.属性名;
常量:final
必须有值,且只能赋值一次
格式:
[修饰符] final int ID = 1;
抽象:abstract
抽象方法:用abstract修饰方法,没有方法的实现
public abstract 返回值类型 函数名([参数列表]);
抽象类:用abstract修饰的类
抽象类中可以有普通方法,也可以有抽象方法
抽象类不能实例化对象,可以做引用类型
类中一旦有抽象方法,这个类必须是抽象类
接口:interface
接口不是类,是协议。比抽象类 更抽象
接口中只能有抽象方法和静态常量
接口不能实例化对象,可以做引用对象
一个接口可以同时继承多个接口
接口由类实现功能:implements
格式:
public class 类名 implements 接口{
实现方法;
}
一个实现类可以同时实现多个接口
5.异常
异常Exception:异常不是错,是意外
分类:
检查异常(编译异常):
Exception以及子类(RuntimeException除外)
特点:编写代码是报错,必须处理
未检查异常(运行异常):
RuntimeException以及子类
特点:运行时报错,可处理,可不处理
处理方式:两种
第一种:抛出
在函数后 throws 异常类
第二种:try...catch
格式:
try{
可能出现异常的代码块;
}catch(异常类型 异常对象){
异常处理
}finally{
不管有没有异常这里都会执行
}
自定义异常:
1、创建类继承异常类
public class 类名 extends 异常类{
}
2、使用构造函数,构造新的异常信息
public class 类名 extends 异常类{
public 构造函数(){
super("新的异常信息");
}
}
使用自定异常:
在代码块(函数内)中抛出异常对象
throw 异常对象
public void a(){
throw new 异常对象();
}