一、 Object
Object是所有类的父类,类在默认情况下,继承的都是Object类
当我们直接输出一个对象名的时候:会出现:当前类的路径+@+hashcode、
1. toString() 将对象转化成String类型,在使用对象时,默认会调用toString()方法
a) toString得到的字符默认格式为:当前类的路径+@+hashcode
b) 若想要呢自己规定格式,那么我们需要重写toString();
c)
2. equals()
a) ==比较基本数据类型时比较的是值是否相等,比较引用数据类型时比较的是内存地址是否相等
b) equals()比较的是引用数据类型的值是否相等
c) 在object中equals方法只是简单的使用==进行了比较,若我们真的想要比较引用数据类型的值是否相等,那么我们就需要重写equals方法
3. finalize () 垃圾回收机制 只是用来进行垃圾回收
二、 访问权限修饰符
权限修饰符 | 在本类中 | 在同包 | 不同包继承关系 | 任何位置 |
私有的private | √ | × | × | × |
默认(default) | √ | √ | × | × |
受保护的protected | √ | √ | √ | × |
公共的public | √ | √ | √ | √ |
访问权限从小到大的顺序为:private default protected public
三、 this
this ,这 这个在代码中一般指的是当前对象,主要用来区分成员变量和局部变量
当变量名相同时,加this关键字的指的是全局变量,不加this关键字的是局部变量
this的用法:
调用当前类的属性:this.属性名;
调用当前类的方法:this.方法名();。。。。。此处的this是可以省略的
调用当前类的构造方法:this();…..当调用有参构造时,需要在()中添加参数
四、 super
super指的是父级的,一般用来调用父类中的特性
super的用法:
调用父类中的属性:super.属性名;
调用父类中的方法:super.方法名();
调用父类中的构造方法:super();……当调用有参构造时,需要在()中添加参数。。。。。。。。。必须写在子类构造函数的第一行
五、 final 最终的
1. final修饰的类不能被继承
2. final修饰的属性,值不能改变,是常量,必须赋初始值
3. final修饰的方法,不能被重写
4. 不能修饰构造方法
六、 static 静态
能修饰属性,也能修饰方法
使用static修饰的方法和属性,不属于对象,只属于类
调用静态属性:类名.属性名;
调用静态方法:类名.方法名();
七、abstract 抽象的
abstract 可以修饰方法
修饰的方法我们称为抽象方法;
修饰的方法没有方法体;
抽象方法只能存在于抽象类中
abstract 修饰类的抽象类
a) 当一个类继承了抽象类,那么这个类就必须重写抽象类中的所有抽象方法
b) 抽象类中可以有抽象方法,也可以有普通方法
c) 抽象类不能被实例化(不能创建对象)
八、接口interface
a) 定义的格式:
public interface 接口名{}
b) 接口是特殊的抽象类
c) 接口中所有的方法都是抽象方法,接口中所有的方法都是默认使用public abstract修饰的
d) 接口中所有属性(变量)都是默认使用public static final修饰的,必须给定初始值
e) 接口也不能被实例化
f) 类与接口之间只能是实现的关系,即类实现接口
g) 类实现了该接口,那么就必须重写接口中的所有方法
h) 类是多实现的,即一个类可以实现多个接口,接口之间使用,分割
i 类是单继承,多实现的(一个类只能继承一个父类,但是可以实现多个接口)
多态:(多种状态)
1. 重载
在同一个类中,要求方法的名称相同,参数的个数,顺序,类型至少有一个不同
2. 重写,
在父子类继承关系中,父类无法满足子类的需求时,那么我们需要重写该方法,要求;方法的名称相同,参数相同(个数,顺序,类型),返回值相同;子类的访问权限不能小于父类;子类不能抛出比父类更多的异常,但可以是父类异常的子异常
3. 实现类创建接口对象
a) 接口的特点:
i. 特殊的抽象类
ii. 所有的方法都是抽象的,公共的,默认的是public abstract
iii. 属性默认是public static final修饰的,必须赋初始值
iv. 接口与类之间的关系是类实现接口
v. 一个类实现了该接口,那么必须重写该接口中的所有方法
vi. 一个类可以实现多个接口,但只能继承一个类
vii. 接口不能实例化
格式: 接口 对象名 = new 实现类(); 在这个对象中可以使用的方法只能是接口中含有的方法,
4. 创建类的子类得到父类对象
a) 抽象类的特点:抽象类的特点,当一个类继承抽象类,那么这个类需要重写抽象类中的所有抽象方法,抽象类中可以有普通方法,也可以有抽象方法
b) 抽象方法的特点:抽象方法没有方法体,抽象方法只能存在于抽象类中
格式:父类 对象 = new 子类(); 可以通过new子类来使用父类中的方法 在这个对象中可以使用的方法,都是父类中的方法
异常
error 错误。在程序运行过程中出现的无法解决的错误;最常见的是:内存溢出
exception 在程序运行过程中出现的可以解决的问题
1. 异常的分类:
a) 一般异常(受控异常):
i. 在代码编译过程中,得到可能出现异常的位置,必须解决后才能编译通过
1. IOException、Io流异常
2. FileNotFoundException:文件未找到异常
3. EOFException:读写文件尾异常
4. MalformedURLException:URL格式错误异常
5. SocketException:Socket异常
6. SQLException sql异常
7. ParseException 日期格式转换异常
b) 运行时异常:RuntimeException(非受控异常):
i. 程序的运行过程中,可以编译通过,但是由于代码逻辑问题出现的异常,我们称之为运行时异常
1. 常见的运行时异常:
a) ArrayIndexOutOfBoundsException数组下标越界异常
b) IndexOutOfBoundsException 下标越界异常
c) StringIndexOutOfBoundsException 字符串下标越界异常
d) ArithmeticException数学计算异常
e) NullPointerException空指针异常
f) NumberFormatException 数字格式化异常
c) 异常的解决方案:
i. try catch格式:
try{
可能出现异常的代码块
}catch(异常的类型){
异常的解决方式
}
当我们写多个catch的时候,顺序应该为异常从小到大
finally是try catch的连用语句,表示是否出现异常都会执行finally里面的内容,一般我们用于关闭连接,释放资源
ii. throws 抛出,声明异常
1. 一般在方法的()后面声明异常一个,一般情况下,我们会将异常抛出给main方法,注意,在main方法中必须使用try,,catch块解决