아래에서 우리는 Java의 호출 방법을 기반으로 정렬하고 요약했으며 관련 호출 코드도 테스트했습니다. 아래에서 배우자.
Java 방법에는 세 가지 주요 유형이 있습니다.
하나는 정적 방법입니다
이 방법은 정적으로 수정 되며이 방법은 특정 객체에 바인딩 될 필요가 없습니다. 두 번째는 정적 수정이없는 일반적인 방법입니다. 세 번째는 주로 클래스를 초기화하는 데 사용되는 시공 방법입니다.
정의 및 인스턴스형 개체를 사용하여 정적 메소드를 호출하거나 클래스 이름을 직접 사용하여 호출 할 수 있습니다.
인스턴스 메소드는 정의 및 인스턴스화 된 개체를 사용하여 호출해야합니다.
클래스 A {// static 메소드, 클래스 이름을 사용하여 직접 호출하고 a.sayHello () public static void sayhello () {system.out.println과 같은 메소드 이름을 가리킬 수 있습니다. } // 인스턴스 메소드는 a = new a ()를 호출하기 전에 클래스의 인스턴스를 만들어야합니다. a.sayworld (); public void sayworld () {system.out.println ( "인스턴스 메소드 출력 성공 : World"); }} public class mydemo {public static void main (String [] args) {a a = null; try {a.sayhello (); // 정적 메소드를 호출} catch (nullpointerexception e) {system.out.println ( "정적 메소드를 호출 할 때 널 포인터 예외가 발생했습니다"); } try {a.sayworld (); // 인스턴스 메소드를 호출} catch (nullPointerException e) {System.out.println ( "인스턴스 메소드를 호출 할 때 NULL 포인터 예외가 발생했습니다"); }}} 테스트 출력 :
정적 메소드 출력 성공 : 안녕하세요
인스턴스 메소드를 호출 할 때 널 포인터 예외가 발생했습니다.
Java는 클래스에서 방법 코드를 동적으로 호출합니다
math.class.getDeclaredMethod를 사용하십시오 ( "sin", double.type); 지정된 메소드에 액세스하려면 "sin"은 액세스 할 메소드의 이름이 sin이고 double.type는 입력 매개 변수의 유형이 더블임을 의미합니다.
import java.lang.reflect.method; public class dongtai {public static void main (String [] args) {try {system.out.println ( "수학 클래스의 정적 메소드 sin () 호출"); 메소드 sin = math.class.getDeclaredMethod ( "sin", double.type); double sin1 = (double) sin.invoke (null, new Integer (1)); System.out.println ( "1의 사인 값은 :" + sin1); system.out.println ( "string class를 호출하는 비 정적 메소드 equals () 호출"); 메소드 equals = string.class.getDeclaredMethod ( "equals", object.class); 부울 mrsoft = (부울) equals.invoke (새로운 문자열 ( "내일 기술"), "내일 기술"); System.out.println ( "The String Tomorrow 기술입니다 :" + Mrsoft); } catch (예외 e) {e.printstacktrace (); }}}실행 후 출력 결과