前阵子,稍微整理下java 方法的调用,记录下。
1.根据存放位置,分为 同类/同包不同类/不同包;
2.根据权限等,分为 public /private(控制访问权限)、静态/非静态(控制需不需要 new) ;
先说规律:
1.导包:同类(仅这个不需要导包),同包不同类/不同包(都需要导包);
2.权限:private修饰的,只能在本类中被引用,而public 的引用没有这个限制;
3.调用方式:静态方法:即用 static 修饰的方法,自动在堆内存提前创建好,
调用方式为 方法名();
非静态方法:调用的时候,要先new 这个类,调用方式为 类名.方法名() ;
代码示例:
第一段代码,包含了所有方法的引用;
package com.fatky.basic;
import com.fatky.advance.MethodCalling03;
import static com.fatky.advance.MethodCalling03.Method07;
import static com.fatky.basic.MethodCalling02.method04;
/**
* @author
* @version 1.0
* @create
*/
public class MethodCalling {
public static void main(String[] args) {
// 同类
// 01 : 调用 同类中的public static 方法
method01();
// 02 : 调用 同类中的private static方法
method02();
// 03 : 调用 同类中的public 非 static 方法 ,无 static 方法修饰的必须实例化,即new d
MethodCalling methodCalling = new MethodCalling();
methodCalling.method03();
// 同包不同类
// 04 : 调用 同包不同类中的public static 方法 需要导包
method04();
// 05 : 调用 同包不同类中的private static方法 private修饰的不能被其他类访问
// method05();
// 06 : 调用 同包不同类中的public 非 static 方法
MethodCalling02 methodCalling02 = new MethodCalling02();
methodCalling02.method06();
// 不同包
// 07 : 调用 不同包 中的public static 方法 导包
Method07();
// 08 : 调用 不同包 中的private static 方法 private修饰的无法调用;
// Method08();
// 09 : 调用 不同包 中的public 非 static 方法
MethodCalling03 methodCalling03 = new MethodCalling03();
methodCalling03.Method09();
}
// ====================================================================================
// 同类中的public static 方法
public static void method01() {
System.out.println("同类中的public static 方法01");
}
// 同类中的private static方法
private static void method02() {
System.out.println("同类中的private static方法02");
}
// 同类中的public 非 static 方法
public void method03() {
System.out.println("同类中的public 非 static 方法03");
}
}
第二段代码:
同包不同类:
package com.fatky.basic;
/**
* 同包不同类 方法的调用
* @author
* @version 1.0
* @create
*/
public class MethodCalling02 {
// 同包不同类中的public static 方法
public static void method04 (){
System.out.println("同包不同类中的public static 方法04");
}
// 同包不同类中的private static方法
private static void method05(){
System.out.println("同包不同类中的private static方法05");
}
// 同包不同类中的public 非 static 方法
public void method06(){
System.out.println("同包不同类中的public 非 static 方法06");
}
}
第三段代码:
不同包:
package com.fatky.advance;
/**
* 不同包 方法的调用
*
* @author
* @version 1.0
* @create
*/
public class MethodCalling03 {
// 不同包 中的public static 方法
public static void Method07() {
System.out.println("不同包中的public static 方法07");
}
// 不同包 中的private static 方法
private static void Method08() {
System.out.println("不同包中的private static 方法08");
}
// 不同包 中的public 非 static 方法
public void Method09() {
System.out.println("不同包中的public 非 static 方法09");
}
}