자바 에서 의 방법 사용 에 대한 심도 있 는 설명

10154 단어 자바성명방법.
방법의 사용
1.방법의 기본 용법
방법 이란 무엇 입 니까?방법 은 코드 세 션 입 니 다.C/C+언어 중의'함수'와 유사 합 니 다.
1.1 방법 이 존재 하 는 의미:
4.567917.모듈 화 할 수 있 는 조직 코드(코드 규모 가 비교적 복잡 할 때).4.567918.
4.567917.코드 가 중복 사용 되 고 한 코드 는 여러 위치 에서 사용 할 수 있 습 니 다.4.567918.
코드 를 더 쉽게 이해 할 수 있 도록4.567917.기 존의 방법 으로 직접 개발 하고 바퀴 를 중복 만 들 필요 가 없다1.2 방법 정의 문법
기본 문법:

//     
public static           ([        ...]){
      ;
 [return    ];
}
//     
      =     (  ...);
코드 예시:하나의 방법 을 실현 하여 두 개의 정 수 를 덧붙이다

class Test {
 public static void main(String[] args) {
 	int a = 10;
 	int b = 20; 
 //      
 	int ret = add(a, b);
 	System.out.println("ret = " + ret);
 }
 //      
 public static int add(int x, int y) {
 		return x + y;
 }
}
//     
ret = 30
주의사항:
4.567917.현재 로 서 는 main 함수 에서 호출 하 는 방법 만 있 으 면 Public 와 static 이라는 두 키 워드 를 써 야 합 니 다4.567917.방법 이 정 의 될 때 매개 변 수 는 없 을 수 있 고 있 으 면 매개 변 수 는 유형 을 지정 해 야 합 니 다
  • 방법 이 정 의 될 때 반환 값 도 없 을 수 있 습 니 다.반환 값 이 없 으 면 반환 값 형식 은 void 로 써 야 합 니 다
  • 4.567917.방법 정의 시의 매개 변 수 는'형 삼'이 라 고 부 르 고 방법 호출 시의 매개 변 수 는'실 삼'이 라 고 부른다4.567917.방법의 정 의 는 클래스 에 있어 야 합 니 다.자바 에는 함수 성명 의 개념 이 없 기 때문에 코드 는 호출 위치 위 나 아래 에 쓸 수 있 습 니 다1.3 방법 호출 의 실행 과정
    기본 규칙:
    4.567917.방법 을 정의 할 때 방법 을 실행 하지 않 는 코드.호출 할 때 만 실 행 됩 니 다4.567917.방법 이 호출 될 때 실제 인삼 을 형 삼 에 게 부여 합 니 다4.567917.매개 변수 전달 이 끝나 면 방법론 코드 가 실 행 됩 니 다4.567917.방법 이 실 행 된 후에(return 문 구 를 만 났 을 때)실 행 된 후에 방법 호출 위치 로 돌아 가 계속 아래로 실 행 됩 니 다4.567917.한 가지 방법 은 여러 번 호출 될 수 있다코드 예시:계산 1!+2!+3!+4!+5!
    
     public static void main(String[] args) {
     	int sum = 0;
     	for (int i = 1; i <= 5; i++) {
     		sum += factor(i);
     }
    	 System.out.println("sum = " + sum);
     }
     public static int factor(int n) {
     	System.out.println("  " + n + "    !");
     	int result = 1;
     	for (int i = 1; i <= n; i++) {
     		result *= i;
     }
    	 return result;
     }
    }
    //     
       1     ! 
       2     ! 
       3     ! 
       4     ! 
       5     ! 
    sum = 153
    
    사용 방법 은 이중 순환 을 피하 고 전체 과정 을 하나의 방법 에 넣 어 코드 를 더욱 간단 하고 선명 하 게 할 수 있다.
    1.4 실 삼 과 형 삼 의 관계(중요)
    코드 예제:두 개의 정형 변 수 를 교환 합 니 다.
    
    class Test {
     public static void main(String[] args) {
     	int a = 10;
     	int b = 20;
    	swap(a, b);
     	System.out.println("a = " + a + " b = " + b);
     }
     public static void swap(int x, int y) {
     	int tmp = x;
     	x = y;
    	y = tmp;
     }
    }
    //     
    a = 10 b = 20
    
    그러면 변수 a 와 b 의 값 이 교환 되 지 않 았 음 을 알 수 있 습 니 다.
    원인 분석:
    在这里插入图片描述
    기본 유형 에 있어 서 형 삼 은 실제 인삼 의 복사,즉 전송 값 호출 에 해당 한다.
    해결 방법:
    현재 이 문 제 를 해결 하려 면 참조 형식 인 자 를 전송 할 수 있 습 니 다(예 를 들 어 배열 로 이 문 제 를 해결 할 수 있 습 니 다).배열 의 사용 에 대해 서 는 지금 먼저 알 아 보고 나중에 정리 하 겠 습 니 다.
    
    class Test {
     	public static void main(String[] args) {
    		 int[] arr = {10, 20};
     		 swap(arr);
     		 System.out.println("a = " + arr[0] + " b = " + arr[1]);
     }
     	public static void swap(int[] arr) {
    		 int tmp = arr[0];
     		 arr[0] = arr[1];
     		 arr[1] = tmp;
     }
    }
    //     
    a = 20 b = 10
    
    1.5 값 을 되 돌려 주 는 방법 이 없습니다.
    방법의 반환 값 은 선택 할 수 있 고,어떤 때 는 없 을 수 있다.
    코드 예제:
    
    class Test {
     	public static void show(int x, int y) {
     		System.out.println("Hello World!");
     }
    	 public static void main(String[] args) {
    			show();
     }
    }
    //    :
    Hello World!
    
    예 를 들 어 방금 두 개의 정 수 를 교환 하 는 방법 도 값 을 되 돌려 주지 않 았 다.사용 할 때 방법 에 반환 값 이 있 는 지,있 으 면 같은 유형의 변수 로 받 아들 여야 합 니 다.
    2.방법의 적재량
    어떤 때 는 함수 하나 로 여러 가지 파 라 메 터 를 동시에 호 환 해 야 할 때 가 있 습 니 다.이 럴 때 우 리 는 방법의 재 부팅 을 사용 합 니 다.
    2.1 해결 해 야 할 문제
    코드 예제:
    
    class Test {
     public static void main(String[] args) {
     		int a = 10;
     		int b = 20;
     		int ret = add(a, b);
     		System.out.println("ret = " + ret);
     		double a2 = 10.5;
     		double b2 = 20.5;
     		double ret2 = add(a2, b2);
    		System.out.println("ret2 = " + ret2);
     }
     public static int add(int x, int y) {
     		return x + y;
     }
    }
    //     
    Test.java:13:   :       :  double   int      
        double ret2 = add(a2, b2);        
             ^
    
    매개 변수 형식 이 일치 하지 않 기 때문에 기 존의 add 방법 을 직접 사용 할 수 없습니다.
    2.2 과부하 사용
    코드 예제:
    
    class Test {
     public static int add(int x, int y) {
    		 return x + y;
     }
     public static double add(double x, double y) {
     		 return x + y;
     }
     public static double add(double x, double y, double z) {
    		 return x + y + z;
     }
     public static void main(String[] args) {
    		 int a = 10;
    		 int b = 20;
    		 int ret = add(a, b);
    		 System.out.println("ret = " + ret);
    		 double a2 = 10.5;
    		 double b2 = 20.5;
    		 double ret2 = add(a2, b2);
    		 System.out.println("ret2 = " + ret2);
    		 double a3 = 10.5;
    		 double b3 = 10.5;
    		 double c3 = 20.5;
    		 double ret3 = add(a3, b3, c3);
    		 System.out.println("ret3 = " + ret3);
     }
    }
    
    그러면 방법 이름 은 모두 add 라 는 것 을 볼 수 있 지만 어떤 add 는 int 를 더 한 것 이 고 어떤 것 은 double 을 더 한 것 이 며 어떤 것 은 세 개의 숫자 를 더 한 것 을 계산 하기 때문에 같은 방법 이름 에 대해 서로 다른 버 전의 실현 을 제공 하 는 것 을 방법 재 업로드 라 고 한다.
    2.3 과부하 의 규칙
    같은 클래스 에 대하 여:
    방법 명 이 같다
  • 방법의 매개 변 수 는 다르다(매개 변수 개수 또는 매개 변수 유형)
  • 4.567917.방법의 반환 값 유형 은 과부하 에 영향 을 주지 않 습 니 다코드 예제:
    
    class Test {
     public static void main(String[] args) {
    	 int a = 10;
    	 int b = 20;
    	 int ret = add(a, b);
    	 System.out.println("ret = " + ret);
     }
     public static int add(int x, int y) {
    	 return x + y;
     }
     public static double add(int x, int y) {
    	 return x + y;
     }
    }
    //     
    Test.java:13:   :     Test       add(int,int)
      public static double add(int x, int y) {
            ^ 1    
    
    그러면 두 방법의 이름 이 같 고 매개 변수 도 같 지만 반환 값 이 다 를 때 만 함수 재 부팅 이 되 지 않 는 다 는 것 을 알 수 있다.
    3.방법 재 귀
    3.1 재 귀적 개념
    하나의 방법 이 실행 과정 에서 자신 을 호출 하 는 것 을'재 귀'라 고 한다.
    재 귀 는 수학 상의'수학 귀납법'에 해당 하 는데 시작 조건 이 있 고 그 다음 에 전달 공식 이 있다.
    예 를 들 어,우 리 는 N 을 구한다!
    시작 조건:N=1 시,N!위 1.이 시작 조건 은 재 귀적 인 종료 조건 에 해당 한다.
    재 귀 공식:N!!직접 구하 기 힘 들 면 문 제 를 N 으로 바 꿀 수 있다!=>N*(N-1)!
    코드 예시:귀속 구 N 의 곱셈
    
    public static int factor(int n) {
     if (n == 1) {
      return 1;
     }
     return n * factor(n - 1); // factor       
    }
    public static void main(String[] args) {
     int n = 5;
     int ret = factor(n);
     System.out.println("ret = " + ret);
    }
    //     
    ret = 120
    
    재 귀 하 는 방법 이 있 으 면 순환 을 사용 하지 않 아 도 된다 는 것 을 알 수 있다.그러면 그의 과정 이 어떻게 집행 되 는 지 아래 의 분석 을 살 펴 보 자.
    3.2 재 귀 집행 과정 분석
    재 귀적 프로그램의 실행 과정 은 이해 하기 쉽 지 않 으 며,재 귀 를 정확히 이해 하려 면 방법의 실행 과정 을 먼저 이해 해 야 한다"며 특히"방법 집행 이 끝 난 뒤 호출 위치 로 돌아 가 계속 진행 해 야 한다.
    코드 예제:N 단 계 를 재 귀적 으로 구하 고'로그'버 전 을 추가 합 니 다.
    
    public static int factor(int n) {
     	 System.out.println("    , n = " + n);
     	if (n == 1) {
      		 System.out.println("    , n = 1 ret = 1");
    		  return 1;
     }
     	int ret = n * factor(n - 1);
     	System.out.println("    , n = " + n + " ret = " + ret);
     	 	return ret; 
    }
    public static void main(String[] args) {
     	int n = 5;
     	int ret = factor(n);
     	System.out.println("ret = " + ret);
    }
    //     
        , n = 5
        , n = 4
        , n = 3
        , n = 2
        , n = 1
        , n = 1 ret = 1
        , n = 2 ret = 2
        , n = 3 ret = 6
        , n = 4 ret = 24
        , n = 5 ret = 120
    ret = 120
    
    실행 프로 세 스 맵:
    在这里插入图片描述
    3.3 재 귀 연습
    코드 예제 1:한 숫자의 한 자 리 를 순서대로 인쇄 합 니 다(예 를 들 어 1234 에서 1,2,3,4 를 인쇄 합 니 다)
    
    public static void print(int num) {
     if (num > 9) {
      print(num / 10);
     }
     System.out.println(num % 10);
    }
    
    코드 예시 2:귀속 구 1+2+3+...+10
    
    public static int sum(int num) { 
     if (num == 1) { 
     return 1; 
     } 
     return num + sum(num - 1); 
    }
    
    코드 예제 3:재 귀 방법 을 쓰 고 비 마이너스 정 수 를 입력 하여 그 숫자 를 구성 하 는 합 을 되 돌려 줍 니 다.예 를 들 어 1729 를 입력 하면 1+7+2+9 로 돌아 가 야 합 니 다.그 합 은 19 입 니 다.
    
    public static int sum(int num) { 
     if (num < 10) { 
     	return num; 
     } 
     return num % 10 + sum(num / 10); 
    }
    
    코드 예제 4:피 보 나치 수열 의 N 항
    
    public static int fib(int n) { 
     if (n == 1 || n == 2) { 
    	 return 1; 
     } 
     return fib(n - 1) + fib(n - 2); 
    }
    
    재 귀 로 구 해 보면 앞의 몇 가지 항목 을 구 하 는 것 이 매우 빠 른 것 을 발견 할 수 있 지만 우리 가 fib(40)를 구 할 때 프로그램의 운행 속도 가 매우 느 린 것 을 발견 할 수 있다.이 유 는 재 귀 가 대량의 중복 연산 을 초래 할 수 있 기 때문이다.
    그렇다면 효과 적 인 해결 방법 은 교체 의 방법 을 이용 하여 해결 하 는 것 이다.
    
    public static int fib(int n) { 
     	int f1 = 1; 
     	int f2 = 1; 
     	int cur = 0; 
    	 for (int i = 3; i <= n; i++) { 
     		cur = f1 + f2; 
     		f2 = f1; 
     		f1 = cur; 
     } 
    	 return cur; 
    }
    //        fib(40)    ,   102334155
    
    3.4 귀속 소결
    4.567917.재 귀 는 중요 한 프로 그래 밍 으로 문 제 를 해결 하 는 방식 이다4.567917.일부 문 제 는 재 귀 방식 으로 정의 하 는 것 이다(예 를 들 어 피 보 나치 수열,이 진 트 리 등).이때 재 귀 를 사용 하여 풀 기 쉽다4.567917.일부 문 제 는 재 귀 와 비 재 귀(순환)를 사용 하면 모두 해결 할 수 있다.그러면 이때 순환 을 사용 하 는 것 을 추천 하고 재 귀 보다 비 재 귀 절차 가 더욱 효율 적 이다총결산
    자바 의 방법 사용 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 자바 방법 사용 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기