第20节 Java方法重载和this关键字
方法重载
方法重载的意思是:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。
class A {
float add(int a,int b) {
return a+b;
}
float add(long a,int b) {
return a+b;
}
double add(double a,int b) {
return a+b;
}
}
PS:见示例
创建主类 Demo18
public class Demo18 {
public static void main(String[] args) {
Circle circle = new Circle(); //创建圆对象
circle.setRadius(12.5); //通过setRadius方法的参数传递圆的半径值
Ladder ladder = new Ladder(10, 20, 15); //创建梯形对象,并通过构造方法的参数传递值
People people = new People(); //创建实例,并通过computerArea方法,传递带参数对象,完成参数的传递
System.out.println("people计算圆的面积:"+people.computerArea(circle));
System.out.println("people计算梯形的面积:"+people.computerArea(ladder));
}
}
创建类Circle圆形
public class Circle {
double radius, area; // 半径 和面积
void setRadius(double r) { //设置半径方法
radius = r; //对r进行赋值
}
double getArea() { //得到我们对应的圆的面积
area = 3.14 * radius * radius; //计算圆的面积
return area;
}
}
创建类Ladder梯形
public class Ladder {
double top, bottom, height; //上底,下底,高
public Ladder(double a, double b, double h) { //构造方式传参
top = a;
bottom = b;
height = h;
}
double getArea() {
return (top + bottom) * height / 2; //计算梯形的面积
}
}
创建类People
public class People { //重载方法,分别计算圆和梯形的面积
double computerArea(Circle c){
return c.getArea();
}
double computerArea(Ladder l){
return l.getArea();
}
}
运行结果
This关键字
this是Java的一个关键字,表示某个对象。this可以出现在实例方法和构造方法中,但不可以出现在类方法中。
实例方法可以操作类的成员变量,当实例成员变量在实例方法中出现时,默认的格式是:
this.成员变量;
当static成员变量在实例方法中出现时,默认的格式是:
类名.成员变量;
当一个对象调用方法时,方法中的实例成员变量就是指分配给该对象的实例成员变量,而static变量则和其他对象共享。因此,通常情况下,可以省略实例成员变量名字前面的“this.”,以及static变量前面的“类名.”。
但是,当实例成员变量的名字和局部变量的名字相同时,成员变量前面的“this.”或“类名.”就不可以省略。
注:this不能出现在类方法中,这是因为,类方法可以通过类名直接调用,这时,可能还没有任何对象诞生。
public class Demo18 {
public static void main(String[] args) {
Test test = new Test();
test.speek(3);
}
}
class Test{
double a = 4;
void speek(double a){
System.out.println("a="+this.a); //如果重名时优先选择局部变量
}
}
运行结果