方法重载 · 同一个类中两个或以上的方法可以有同一个名字,只要参数声明不同即可
- 方法的参数类型相同,个数不同;
- 方法的参数个数相同,类型不同;
- 重载只跟方法的参数类型和个数相关,跟返回值无关;
public int cdd(int x, int y){
return x+y;
}
public int cdd(int x, int y ,int z){
return x+y+z;
}
//要么类型不同,要么个数不一样多,否则构不成重载
方法的调用
- 调用非静态方法:通过对象调用
- 调用静态的方法:通过类名调用
- 本类中
- 静态直接调用静态
- 静态调用非静态
- 非静态调用静态
- 非静态调用非静态
- 不同类中
- 静态调用静态
- 静态调用非静态
- 非静态调用静态
- 非静态调用非静态
本类中
- 静态调用静态:直接调用
public static void main(String[] args){
t2(); //直接调用
}
public static void t2(){
......
}
- 静态调用非静态:通过静态的对象去调用
public class A{
public static void main(String[] args){
}
public void noStatic(){ //非静态方法
......
}
public static void yesStatic(){ //静态方法
A yes = new A(); //在静态里创建一个对象
yes.noStatic(); //通过静态的对象调用非静态
}
}
- 非静态调用静态:直接调用
public class AD{
public static void main(String[] args){
}
public void nono(){ //非静态方法
yesyes(); //直接调用
}
public static void yesyes(){ //静态方法
......
}
}
- 非静态调用静态:直接调用
public class AA{
public static void main(String[] args){
}
public void yes1(){
yes2();
}
public void yes2(){
......
}
}
不同类中
- 静态调用静态:通过 类名.静态方法()调用
public class AA{
public static void main(String[] args){
}
public static void one(){
AA.two(); //类名.静态方法();
}
public static void two(){
......
}
}
- 静态调用非静态:先导入该类中的包,后创建对象调用
public class AA{ //AA类
public static void main(String[] args){
}
public staic void yesStatic(){ //在静态方法中创建对象
BB b = new BB(); //非静态所在类类名 对象 = new 非静态所在类类名();
b.noStatic();
}
}
public class BB{ //BB类
public void noStatic(){
......
}
}
- 非静态调用静态:先导入该包,通过类名调用
public class AA{ //AA类
public static void main(String[] args){
}
public void yesStatic(){ //在非静态方法中创建对象
BB.yesStatic();
}
}
public class BB{ //BB类
public static void yesStatic(){
......
}
}
- 非静态调用非静态:先导入该包,通过对象调用
public class AA{ //AA类
public static void main(String[] args){
}
public void yesStatic(){ //在非静态方法中创建对象
BB b = new BB(); //非静态所在类类名 对象 = new 非静态所在类类名();
b.yesStatic(); //通过对象调用
}
}
public class BB{ //BB类
public void yesStatic(){
......
}
}