1、方法重载
方法重载的意思是:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。
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:见示例。
2、this的关键字
this是Java的一个关键字,表示某个对象。this可以出现在实例方法和构造方法中,但不可以出现在类方法中。
实例方法可以操作类的成员变量,当实例成员变量在实例方法中出现时,默认的格式是:
this.成员变量;
当static成员变量在实例方法中出现时,默认的格式是:
类名.成员变量;
当一个对象调用方法时,方法中的实例成员变量就是指分配给该对象的实例成员变量,而static变量则和其他对象共享。因此,通常情况下,可以省略实例成员变量名字前面的“this.”,以及static变量前面的“类名.”。
但是,当实例成员变量的名字和局部变量的名字相同时,成员变量前面的“this.”或“类名.”就不可以省略。
注:this不能出现在类方法中,这是因为,类方法可以通过类名直接调用,这时,可能还没有任何对象诞生。
3、示例代码
Circle.java
public class Circle {
double radius, area;
void setRadius(double r) {
radius = r;
}
double getArea() {
area = 3.14 * radius * radius;
return area;
}
}
Ladder .java
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 .java
public class People {
double computerArea(Circle c){
return c.getArea();
}
double computerArea(Ladder l){
return l.getArea();
}
}
Demo18 .java
public class Demo18 {
public static void main(String[] args) {
// Circle circle = new Circle();
// circle.setRadius(12.5);
//
// Ladder ladder = new Ladder(10, 20, 15);
//
// People people = new People();
// System.out.println("people计算圆的面积:"+people.computerArea(circle));
// System.out.println("people计算梯形的面积:"+people.computerArea(ladder));
Test test = new Test();
test.speek(3);
}
}
class Test{
double a = 4;
void speek(double a){
System.out.println("a="+this.a);
}
}