区别重载方法可通过‘:
1.参数不同
2.参数相同,顺序不同
重载的参数是基本类型时,可提升也可窄化转换(char型略不同,升至int型)
package com.learn;
public class demo06 {
public static void main(String[] args) {
Dog dog=new Dog();
float f=0;
double b=0;
dog.bark(5,f);
dog.bark(f,5);
dog.bark(b);
}
}
class Dog{
public void bark(int x,float f){
System.out.println("barking");
}
public void bark(float f,int x){
System.out.println("howling");
}
public void bark(double x){
System.out.println("wang");
}
}
3.如果以返回区分重载方法,当不关心返回值时,有时会忽略返回值(此时行不通)
this关键字
通过this调用方法的返回对象
package com.learn;
public class demo07 {
private void methodOne(){
new demo07().methodTwo();
this.methodTwo();
System.out.println("methodOne");
}
private void methodTwo(){
System.out.println("methodTwo");
}
public static void main(String[] args) {
new demo07().methodOne();
}
}
ps:同一个类的另一个方法不必使用this也可调用
在构造器中调用构造器
package com.learn;
public class demo08 {
static float f=0;
demo08(int x){
this(f);
System.out.println(1);
}
demo08(float f){
System.out.println(2);
}
public static void main(String[] args) {
demo08 demo08=new demo08(1);
}
}
ps:this调用构造器必须在第一行,且只能调用一次