初始Java11(方法重载和方法调用)

学习内容:

1.方法重载 

同一个类中的两个或两个以上的方法可以有同一个名字,只要它们的参数声明不同即可,这种情况下,该方法就被称为重载

每个重载方法参数的类型和数量必须是不同的,不同主要体现在以下方面

  1. 方法的参数类型相同,个数不同
  2. 方法的参数个数相同,类型不同

当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

明天要学习的内容:

方法参数及其传递问题、方法递归、类的属性

 

posted @ 2020-07-16 15:59  第厘  阅读(148)  评论(0编辑  收藏  举报