1. 오버로드 방법 이전 기사에서 사용한 max 방법은 int 데이터 유형에만 사용할 수 있지만 두 개의 float를 결정해야하는 경우

각각 1에서 10, 20에서 30, 35에서 45까지의 정수 합을 구해야한다면 각각 3 개의 루프 합계를 나열해야하지만이 3 개의 루프는 처음에있는 숫자와 그 외 다른 것들은 매우 비슷하니 아래 메소드를 호출하여 한번 작성 해보자 프로그램 목록은 다음과 같다.

      public ststic int sum (int i1, int i2) {

          int I = 0;

          for (int i = i1, i <= i2; i ++)

              sum = sum + i;

          합계 반환;

}

      public ststic void main (String args []) {

          System.out.println ( "1에서 10까지의 합계는"+ sum (1,10))입니다.

          System.out.println ( "20에서 30까지의 합계는"+ sum (20,30))입니다.

          System.out.println ( "35에서 45까지의 합계는"+ sum (35,45))입니다.

}

      먼저 두 개의 매개 변수 i1과 i2를 사용하여 sum이라는 메서드를 정의합니다. main 메서드의 문은 sum (1,10)을 호출하여 1부터 10까지의 정수 합계를 계산합니다.

      이 메서드는 작업을 완료하기 위해 결합 된 문 그룹입니다. 이전 기사에서는 System.out.println, JOptionPane, showMessageDialog, JOptionPane.showInputDialog, Integer.parseInt, Double .parseDouble, Math와 같은 미리 정의 된 메서드를 사용했습니다. .pow, Math.ranodm 등 이러한 메소드는 모두 자바 라이브러리에 정의되어 있습니다.이 기사에서는 자체 메소드를 정의하고 복잡한 문제를 해결하기 위해 메소드 추상화를 적용하는 방법을 배웁니다.

      1. 정의 방법

      정의 방법의 구문은 다음과 같습니다.

      수정 자 반환 값 유형 메서드 이름 (매개 변수 목록) {

      방법 본문

}

      위의 예에서 public static은 수정 자, int는 반환 값 유형, sum은 메서드 이름, int i1, int i2는 매개 변수 목록, 메서드 본문은 다음 루프 및 합계, 반환 합계는 반환 값입니다. , method 매개 변수를 포함 할 수 없습니다. 예를 들어 Math.random ()에는 매개 변수가 없습니다.

      메서드 본문에는 메서드의 기능을 정의하는 문 집합이 포함되어 있습니다. 예를 들어 max 메서드의 메서드 본문은 if 문을 사용하여 더 큰 숫자를 확인한 다음 해당 숫자 값을 반환합니다. 반환 값과 함께 결과를 반환해야합니다. return 문을 return 키워드와 함께 사용하려면 return 문을 실행하면 메서드가 중지됩니다. 메소드 헤더에서 각 매개 변수 에 대해 별도의 데이터 유형 선언이 필요합니다 . 예를 들어 max (int n1, int n2)가 올 바르고 max (int n1, n2)가 잘못되었습니다.

       2. 호출 방법

       메소드를 생성 할 때 메소드가 무엇을해야하는지 정의하고, 메소드를 사용하기 위해서는 반드시 호출해야하며, 메소드에 반환 값이 있는지 여부에 따라 두 가지 방법으로 메소드를 호출 할 수 있습니다. 메서드가 값을 반환하면 메서드 호출은 값으로 처리됩니다. 예 : int larger = max (3,4); 메서드가 void를 반환하는 경우 메서드 호출은 명령문이어야합니다. , println은 void를 반환합니다. System.out.println ( "welcome to java "); 메소드가 호출 될 때마다 시스템은 스택이라는 메모리 영역에 매개 변수와 지역 변수를 저장합니다. 데이터를 마지막에 저장합니다. 메서드가 다른 메서드를 호출하면 호출자의 스택 공간이 변경되지 않고 새로 열린 공간이 새 메서드의 호출을 처리합니다. 메서드가 종료되고 호출자에게 반환되면 해당 공간도 해제됩니다.

      3. 매개 변수 값 전송

       메소드의 힘은 매개 변수를 처리하는 능력에 있습니다. 매개 변수가있는 메소드가 호출되면 실제 매개 변수의 값이 형식 매개 변수로 전달됩니다.이 프로세스를 값 헐 전달이라고합니다. 실제 매개 변수가 변수 인 경우 직접 수량이 아닌 변수는 형식 매개 변수에 값이 전달됩니다. 메소드에서 형식 매개 변수가 변경되었는지 여부에 관계없이 변수는 영향을받지 않으며 아래 값 전달의 효과를 보여주는 프로그램을 작성합니다.

       프로그램은 두 개의 변수를 교환 할 수있는 스왑 메서드를 생성합니다. 스왑 메서드가 호출되면 두 개의 실제 매개 변수가 전달됩니다. 메서드가 호출 된 후 두 개의 실제 매개 변수는 변경되지 않습니다. 프로그램 목록은 다음과 같습니다.

testpassbyvalue 패키지;

/ **
 *
 * @author mjd
 * /
public class TestPassByValue {

    / **
     * @param args the command line arguments
     * /
    public static void main (String [] args) {
        // TODO code application logic here
        int num1 = 1;
        int num2 = 2;
        System.out.println ( "스왑 메서드를 호출하기 전에 num1은"+ num1 + "num2는"+ num2입니다);
        스왑 (num1, num2);
        System.out.println ( "스왑 메서드를 호출 한 후 num1은"+ num1 + "num2는"+ num2입니다.); 
    }
    public static void swap (int n1, int n2) {
        System.out.println ( "\ t 스왑 메서드 내부");
        System.out.println ( "\ t \ t 스왑하기 전에 n1은"+ n1 + "n2는"+ n2);
        int temp = n1;
         n1 = n2;

        System.out.println ( "\ t \ tn1 교체 후"+ n1 + "n2는"+ n2);
    }
}

영상

      이 메서드에서는 마지막 문이 반환 되므로이 기사에서 앞서 언급 한 public static void int (int n1, int n2) 대신 public static void swap (int n1, int n2)을 사용합니다 . swap 메서드를 호출하기 전에 num1은 2이고 num2는 2입니다. 메서드가 호출 된 후 변경 사항이 없습니다. swap 메서드가 호출되어 값이 교환되지 않습니다. 실제 매개 변수 num1의 값 때문입니다. 및 num2는 n1 및 n2에 전달되지만 n1 및 n2에는 num1 및 num2와 독립적 인 자체 저장 공간이 있으므로 n1 및 n2의 변경 사항은 num1 및 num2의 내용에 영향을주지 않습니다. 또 다른 변경 사항은 스왑에서 형식 매개 변수의 이름을 num1로 변경하는 것입니다. 메소드가 호출자에게 반환되면 사라지기 때문에 효과가 없습니다. Java는 값 전송 (참조 전송 없음) 만 있으므로 swap ()이 실제로 호출 됨 값은 a와 b에 할당됩니다. 할당 후에는 c 및 d와 아무 관련이 없습니다. C와 d는 여전히 원래 값이며 실제로는 값 전송입니다.

      swap 메서드를 사용해야하는 경우 배열로 다시 작성한 후 swap 함수를 실현할 수 있습니다.

public class Swap5
{
    public static void main (String [] args)
    {
        int [] i = {3, 5};

        스왑 (i);
        System.out.println (i [0]);
        System.out.println (i [1]);
    }

    public static void swap (int [] a)
    {
        int temp = a [0];
        a [0] = a [1];
        a [1] = 온도;
    }
}

      여기에서 유형 만 교환 할 수 있음을 알 수 있습니다. 원시 데이터 유형이 직접 할당되고 참조 유형에 주소가 직접 할당되고 주소가 동일한 객체를 가리 키므로 변경할 수 있습니다.

      4. 질문 : 10 진수를 16 진수로 변환

      컴퓨터 시스템 프로그래밍은 종종 16 진수를 사용합니다.이 기사에서는 10 진수를 16 진수로 변환하는 프로그램을 소개합니다. 우선 알고리즘을 파악해야합니다. 16 진수는 16의 0의 거듭 제곱입니다. h1의 1 제곱을 곱합니다. +16, h2에 16의 n 승을 곱하고 hn을 곱합니다.이 숫자는 몫이 0이 될 때까지 16으로 나눌 수 있습니다. 나머지는 hn, ... h1, h0입니다. 예를 들어, 10 진수 123을 16으로 나누면 몫은 7이고 나머지는 11이고 11은 h0 (16 진수 B)입니다. 몫 7은 16으로 나눈 나머지는 7입니다. 몫은 0입니다. 끝이므로 16 진수 123은 7B이고 프로그램 목록은 다음과 같습니다.

package decimal2hexconversion;

import java.util.Scanner;

/ **
 *
 * @author mjd
 * /
public class Decimal2HexConversion {

    / **
     * @param args the command line arguments
     * /
    public static void main (String [] args) {
        // TODO code application logic here
        Scanner input = new Scanner (System.in);
        System.out.print ( "10 진수 입력 :");
        int decimal = input.nextInt ();
        System.out.println ( "10 진수의 16 진수"+10 진수 + "는"+ decimalToHex (decimal));
    }
    public static String decimalToHex (int decimal) {
        String hex = "";
        while (decimal! = 0) {
            int hexValue = decimal % 16;
            십진수 = 십진수 / 16;
            hex = toHexChar (hexValue) + hex;


    }
    public static char toHexChar (int hexValue) {
        if (hexValue <= 9 && hexValue> = 0)
            return (char) (hexValue + '0');
        그렇지 않으면
            (char) (hexValue-10 + 'A');
    } 
    
}

영상

     프로그램이 올바르게 실행되고 빌드가 성공합니다. 16 진수를 10 진수로 변환하려면 위의 공식을 따르십시오. 예를 들어, 7B, B는 11로, 11 * 16은 0으로, 7 * 16은 1 제곱의 거듭 제곱은 거꾸로 추론 할 수 있으며 마찬가지로 이진수와 8 진수는 동일합니다.

      다음 기사에서는 나머지 방법과 배열에 대해 이야기 할 것이며, 우리 모두가 함께 배우고 발전하기를 바랍니다. 감사합니다.


추천

출처blog.51cto.com/15064656/2602775