- 方法的重载(overload)
重载是指两个方法有相同的名称,但是参数列表不相同的情形,重载出现在同一个类中,返回值可以不同,但是不能作为重载的判断
我们在使用方法的时候,一定要注意参数的数量及类型顺序
方法重载是让类以统一的方式处理不同类型数据的一种手段。Java构造方法的重载就是在类中可以创建多个构造方法,但具有不同的参数列表(这一点和普通方法的重载是一样的)。调用时通过传递参数的不同来决定具体使用哪个构造方法
- 方法的重写(override)
子类对父类的方法作一定的修改,需要采用方法的重写。方法重写又称方法覆盖。
如果在子类有和父类相同(这里指方法名和参数以及返回值都相同)的方法,子类的这个方法叫方法重写
注意:
- 如果要构成方法的重写,返回值、方法名、参数列表必须要相同
- 修饰符的访问范围不能小于父类
- 子类的方法不能抛出比父类更多(或更高)的异常
- 静态的方法不存在重写,但是可以继承。
- this关键字
this关键字的使用:this代表当前类的对象。哪个对象调用了this所属的方法,这个this就代表哪个对象。
通过this显式的去使用当前对象的成员(属性、方法)如果需要在一个构造方法中调用另外一个构造方法来初始化信息可以使用this
this平时是隐式调用,也可以显式的调用
this能用在哪些地方?
1-this可以用在成员方法中(访问当前对象的属性,调用当前对象的方法)
2-this可以用在构造方法中,语法:
this(实参);
目的:代码重用
注意:通过this去调用构造方法时必须是在第一行
构造方法不可以主动调用
- super关键字
在对象的内部可以代表父类对象
1.可以用super调用父类方法
super.方法名( ) ;
2.可以用super调用父类属性
super.属性;
子类的构造方法中一定会去调用其父类的构造方法
如果未显式调用,则默认调用父类无参构造
如果显式调用,则super()必须位于第一行
如果未显示调用而父类未自定义无参构造则程序报错
- static关键字
概念:static是一个修饰符,用来修饰类的成员(包括了属性、方法)
static关键字的使用:
特点:在类加载时就加载(运行、初始化)静态 初始化优于对象的
静态的成员(属性和方法)可以通过 类名.操作符直接访问
注意:
只有在所有对象都是同一个属性值的时候我们才建议到属性上用static修饰
在static的方法或者语句块中不能使用this、super关键字
在static的方法或者语句块中不能使用非static的成员(属性、方法)
在非static的方法或者语句块中可以使用static的成员(属性和方法)也可以使用非static的成员
代码块的区别
- 普通代码块 方法或语句中出现的{ }
- 构造代码块 类中出现且没有static修饰的{ }
- 静态代码块 类中出现被static修饰的{ }
静态代码块只执行一次
执行顺序:
静态→main方法→构造代码块→构造方法
- final关键字
使用final关键字做标识有“最终”的含义
final可以修饰类,方法和变量:
1.final修饰类,则该类不允许被继承
2.final修饰方法,则该方法不允许被重写
3.final修饰变量,则该变量的值只能赋一次,即变为常量
遇到不想被改变的时候就加final
- Object类
Object类的介绍:Object在Java中被定义为一个顶级父类,它是任何类父类,我们可以显式的继承也可以隐式继承。
java.lang包在使用的时候不用显式导入
Object是java中唯一一个没有父类的类
Object类常用方法的使用:
1-toString方法:toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明易于读懂的信息表达式。建议所有子类都重写此方法。
2-equals方法:Object类的equals方法默认比较的是对象的引用是否指向同一个内存地址,如果需要判断自定义类型对象内容是否相等,则需要重写equals方法(字符串重写了equals方法) 重写equals方法必须保证如下特性:
- 自反性:如果传入一个非空的引用a a. equals(a)返回true
- 对称性:如果传入两个非空引用a,b a. equals(b)返回true当且仅当b. equals(a)返回true
- 传递性:a. equals(b)返回true,b. equals(c)返回true,那么就有a. equals(c)也返回true
- 一致性:不论调用多少次,结果要保持一致 多次比较中间我们没有修改过两个引用的信息
3-==:比较的是值是否相同如果相同返回true,否则返回false如果是引用数据类型变量比较的是地址值(地址值相等返回true,否则返回false)