미니멜로디

자바 메소드 (Method) 본문

프로그래밍/자바

자바 메소드 (Method)

미니멜로디 2018.02.24 21:18

minimelody.tistory.com/130


메소드 (Method)

타 언어에서는 함수(function), 기존에 작성하던 공간(main 및 기타 메소드)도 하나의 메소드
기능별 구분이 가능해지고 재사용하는 코드들을 메소드로 정의하여 중복 코드 제거
메소드명은 해당 기능명을 작성하는게 원칙, 낙타표기법


- 형태

[접근제어지시자] [예약어] 반환형 메소드명 (매개변수)    // 예약어 : static, final, abstract, syncronized, static final(final static)

{

메소드 실행 코드

return 값;

}


작성 Tip : 기본틀 작성 → 메소드명 수정 → 매개변수 수정 → 실행 코드 수정 → 리턴 데이터 타입 수정
Caller(호출 한 메소드), Callee(호출 당한 메소드)


public int sum (int a, int b)

{

int c;

c = a + b;

return c;

}


public : 접근 제어 지시자
int : 리턴 데이터 타입 (반환 형태 - 반환하는 값의 데이터 타입)

- 리턴값이 있을 경우 리턴 데이터 타입이 명확
- 리턴값이 없을 경우 void 형을 사용

sum : 메소드 명 (호출시 필요한 메소드 이름)
(int a, int b) : 매개변수 (Parameter) → 호출시 보낸값 (인자 혹은 인수(argument))을 저장하는 변수

- 매개변수가 없을 경우 매개변수 부분을 비워놓는다 → public int sum ( )

{ 코드; } : 해당 메소드 호출시 실행하는 코드
return c; : 호출이 끝나면 돌아갈때 가져가는 값 → 리턴값이 있을 경우 리턴 데이터 타입이 명확해야 한다


- 구분
전달인자(argument)와 반환값(return value)의 유무에 따라 4가지로 구분


1. 전달인자(O), 반환값(O)

public int sum(int su1, int su2)

{

return su1+su2;

}


2. 전달인자(O), 반환값(X)

public void printValue(int a)

{

System.out.println(a);

}


3. 전달인자(X), 반환값(O)

public int inputValue()

{

Scanner sc = new Scanner(System.in);

int a = sc.nextInt();

return a;

}


4. 전달인자(X), 반환값(X)

public void onlyPrint()

{

System.out.println("수고하셨습니다.");

}


- 메모리 처리
메소드 안에서 생성되는 변수들은 해당 메소드에서만 사용이 가능 → 해당 메소드에서만 사용하기 때문에 이름 중복 문제가 발생하지 않는다


- 호출 방식
호출할 때 인수(혹은 인자)를 전달하는 방식
값에 의한 호출 (Call By Value) : 인수의 값을 호출한 메소드에 전달, 원본 값 수정 불가
참조에 의한 호출 (Call By Reference) : 인수의 주소를 호출한 메소드에 전달, 원본 값 수정 가능


public static void main(String[] args) {

Scanner sc = new Scanner(System.in);


System.out.println("입력(1~100)");

int num = sc.nextInt();

if(1<=num && num<=100)

{

System.out.println("출력");

printData(num);

}

}


public static void printData(int num) {

int [][] arr = new int [num][num];

for(int j=0;j<num;j++)

{

for(int i=0;i<num;i++)

{

arr[j][i] = (j+1)*(i+1);

System.out.printf("%-5d", arr[j][i]);

}

System.out.println();

}

}



0 Comments
댓글쓰기 폼