자바 연구 노트 4 : 방법, 배열, 재귀

방법
1 정의 캡슐화 함수 편의상 특정 기능 블록을 달성하기 위해 반복했다.
2, 형식 :

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2 ....){
             方法体;
			return 返回值;
		}

(1), 수식 : 현재 정적 공용하여
(2), 리턴 값 형식 : 리턴 값 데이터 유형을 정의하기위한 수단
(3)에있어서, 상품명 :되는 이름은 우리가 메소드를 호출 편의 존재
(4) 파라미터 타입 : 항에있어서 호출 할 때 매개 변수의 데이터 타입은 전달
가변 실제로 전문 용어를 갖는 착신 방법 파라미터를 수신하는 경우가 파라미터라고 : 파라미터 명 (5) 그 기능은 실제 파라미터를 수신한다.
(6) 방법 : 종료 코드 기능
(7)에 복귀 : 리턴 지정된있어서, 상기 방법이 종료 값 타입
(8), 리턴 값 : 상기 기능별 결과 발신자로 다시 되돌아
참고 :
① 메소드 호출하지 않는 않는
평면 관계로 정의되지 중첩 ② 방법이다
사이의 쉼표로 구분하여 정의 방법 ③
되지 송신 방법에서 ④ 전화 데이터 유형
⑤있어서 명확한 반환 값을 갖는 경우, 값이 복귀하여 다시 가져와야

예 : 배열에 정의 된 최대 값을 선택하는 방법

public class ForDemo {
    public static void main(String[] args) {
        int[] arr={1,2,4,5,36,9,6};
        System.out.println(show(arr));
    }
    public static int show(int[] arr){
        int max=arr[0];
        for(int i=1;i<arr.length;i++){
            if(max<arr[i]){
                max=arr[i];
            }
        }
        return (max);
    }
}

3, 과부하에있어서
동일한 클래스는 방법에 상관없이 반환 값만큼 서로 다른 파라미터리스트 (다른 매개 변수의 상이한 유형, 즉 수)만큼, 동일한 이름의 하나 이상의 허용있다.
예를 들면 :

 public static void main(String[] args) {
        
    }
    public static int add(int a,int b){
        
        return 0;
    }

    public static int add(int a, float b) {

        return 0;
    }

    public static int add(int a,int b, float c) {

        return 0;
    }

둘째들의 어레이
배열은 동일한 데이터 유형의 복수의 저장 요소의 집합이다. 콘테이너의 등가. 상기 기본 데이터 형식을 저장할 수 어레이가 기준 데이터 유형을 저장할 수있다.
(1) 1 차원 배열의
형식으로 1 : 데이터 형식 [] 배열 명,
형식 2 : 데이터 형식 배열 이름 []
배열 초기화 : 어레이가 사용 전에 초기화되어야한다. 이는 메모리 어레이로 배열 요소를 할당하고, 각 배열 요소에 할당.
초기화 장비 : 정적 초기화 동적 초기화]
① 동적 초기화 :
형식 : 데이터 유형 [] 배열 이름 = 새로운 데이터 유형 [어레이 크기]
예 : INT [] ARR = 새로운 INT [5.]
② 동적 초기화 :
형식 : 데이터 형식은 [] = 새로운 배열 이름 데이터 유형 [{소자 (1), ... 소자 (2)};
예 : INT [] ARR = 새로운 INT [] {12,52,21}
2, 2 차원 배열의
형식 : ① 데이터 유형 [] [] 변수 이름 = 새로운 데이터 유형 [I] [J]
② 데이터 유형 [] [] 변수 이름 = 새로운 데이터 유형 [I]]
③ 데이터 유형 [] [] 변수 이름 = {{ 요소 ...}, {...} 소자 {...}} 요소;
문제가 종종 발생한다 :
A : ArrayIndexOutOfBoundsException이 : 배열 인덱스 바운드 예외
이유 : 인덱스에 대한 액세스는 어레이의 길이를 초과한다.
B : NullPointerException이 : NULL 포인터 예외
이유 : 배열 힙 메모리에 대한 포인터를하지 않았다. 그리고 당신은 또한 배열 이름의 요소에 액세스하는 데 사용합니다.

셋째, 재귀
재귀 방법 자체라는 메소드에 호출
참고 : 1 재귀 수출을, 그렇지 않으면 죽음은 죽음 재귀 재귀가 스택 오버 플로우가 발생할 수 있습니다
그렇지 않으면 스택 오버 플로우의 위험이있을 것입니다, 번호 2 재귀가 너무 많이 안
예 : ①, 계승 (5)

 public static void main(String[] args) {
        long num=jieCheng(5);
        System.out.println(num);
    }
  private  static long jieCheng(int i) {
        if(i==1){
           return 1;
        }else{
            return i*jieCheng(--i);
        }

    }

②, 토끼 문제 (피보나치 수)
달 토끼 한 쌍을 낳은 후 출생 후 처음 3 개월 토끼의 쌍은 토끼의 매달 한 쌍의 탄생, 토끼, 제 3의 달까지 성장 토끼가 죽은 경우, 토끼 수의 두 번째 열 달 요청은 얼마입니까?

  分析:
            月份    对数
            1          1
            2          1
            3          2
            4          3
            5          5
            6          8
            7          13
            6          21
           ...          ...

결과에서 : 열 세번째 행 번호 1123581321 피보나치 수, 제 2 개 자리 숫자는 각각 자신의 합계의 수와 동일한
번호 :

  public static void main(String[] args){
  int num= rabbitSum(20);
        System.out.println(num);
    }
    private static int rabbitSum(int i) {
        if(i==1||i==2){
           return 1;
        }else{
            return rabbitSum(i-1)+rabbitSum(i-2);
        }
    }
}
게시 24 개 원래 기사 · 원의 찬양 (11) · 전망 2064

추천

출처blog.csdn.net/weixin_43791069/article/details/84801587