学习内容:
1.方法重载
同一个类中的两个或两个以上的方法可以有同一个名字,只要它们的参数声明不同即可,这种情况下,该方法就被称为重载
每个重载方法参数的类型和数量必须是不同的,不同主要体现在以下方面
- 方法的参数类型相同,个数不同
- 方法的参数个数相同,类型不同
当Java调用一个重载方法时,参数与调用参数匹配的方法被执行
注意:重载只跟方法的参数类型和个数有关,跟方法的返回值没有关系
2.方法的调用
调用非静态方法
非静态方法就是没有 static 修饰的方法,对于非静态方法的调用,是通过对象来调用的
1 package day01; 2 public class InvokeMethod{ 3 public static void main(String[] args) { 4 InvokeMethod in =new InvokeMethod(); 5 in.t1(); 6 } 7 public void t1() { 8 System.out.println("t1"); 9 } 10 }
调用静态方法
静态方法就是用static修饰的方法,静态方法的调用是通过类名来调用的
1 package day01; 2 public class InvokeMethod{ 3 public static void main(String[] args) { 4 InvokeMethod.t2(); 5 } 6 public static void t2() { 7 System.out.println("static t2..."); 8 } 9 }
方法与方法之间的调用
方法与方法之间的调用,只要是在一个方法内部如何调用其他方法
(1)静态方法内部调用其他方法
- 静态方法调用静态方法
在本类中
静态方法可以直接调用静态方法
除了在 main 方法中,还可以在自定义的静态方法中直接调用
1 package day01; 2 public class InvokeMethod{ 3 public static void main(String[] args) { 4 } 5 public static void t2() { 6 t2(); 7 System.out.println("static t2"); 8 } 9 public static void t1() { 10 t2(); 11 System.out.println("static t1"); 12 } 13 }
不在一个类当中
- 静态方法调用非静态方法
在本类中
不在同一个类当中
1 package day01; 2 public class InvokeMethod{ 3 public static void main(String[] args) { 4 } 5 public static void t() { 6 B b= new B(); 7 b.t(); 8 9 System.out.println("demo tttttttt"); 10 } 11 } 12 class B{ 13 public void t() { 14 System.out.println("t..."); 15 } 16 }
(2)非静态方法内部调用其他方法
- 非静态方法调用静态方法
在本类中
在本类中,非静态方法可以直接调用静态方法
不在同一个类中
在不同类中,非静态方法调用其他类中的静态方法,需要导入该类中的包。并且需要通过类名来调用
1 package day01; 2 public class MethodDemo{ 3 public static void main(String[] args) { 4 } 5 public void t1() { 6 C.t2(); 7 } 8 class C{ 9 public static void t2() { 10 System.out.println("t2..."); 11 } 12 }
- 非静态方法调用非静态方法
在本类中
在本类中,非静态方法可以直接调用静态方法
不在同一个类中
在不同类中,非静态方法调用其它类中的非静态方法,需要导入该类中的包,并且需要通过对象来调用
遇到的问题:
怎么导入包?
https://www.cnblogs.com/mengdd/archive/2012/12/27/2836412.html
https://zhidao.baidu.com/question/513033182.html
明天要学习的内容:
方法参数及其传递问题、方法递归、类的属性