Java
[Java] Method
wwxs
2024. 9. 6. 10:35
Method(메서드)
- 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것
- 어떤 값을 입력하면 해당 값으로 작업을 수행하여 결과를 반환
메서드의 구조 (선언부, 구현부)
1. 메서드의 선언부
(1) 매개변수 선언(parameter)
- 메서드가 작업을 수행하는데 필요한 값들(입력)을 제공받기 위한 것
- 필요한 값의 개수만큼 변수를 선언하여 각 변수 간의 구분은 쉼표(,)를 사용
- 변수들의 데이터 타입이 같더라도 변수의 타입을 생략할 수 X
(2) 반환 타입(return type)
- 메서드의 작업수행 결과(출력)인 반환값의 타입을 명시
- 반환값이 없는 경우 void 키워드를 사용
2. 메서드의 구현부
(1) return문
- 메서드의 반환타입이 void가 아닌 경우 구현 { } 안에 반드시 return 반환값타입데이터가 포함
- 해당 반환값은 반환 타입과 일치하거나 적어도 자동 형변환이 가능한 것
-
더보기cf) 자동 형 변환: 작은 데이터 > 큰 데이터
EX) int example() {
short a = 10
return a;
}
-
- return문은 단 하나의 값만을 반환 가능
(2) 지역변수(local variable)
- 메서드 내에 선언된 변수 → 그 메서드 내에서만 사용 가능
- 메서드의 구현부에 작성된 변수 뿐만 아니라 매개변수도 메서드 내에서 선언된 것으로 간주하기 때문에 지역변수로 인식
더보기
class Example {
// (인스턴스) 변수 선언
// : 데이터 타입이 같은 경우 타입 생략 가능
int x, y;
// int x;
// int y;
// add 메서드
int add (int x, int y) {
return x + y;
}
// multiply 메서드
int multiply(int x, int y) {
return x * y;
}
// 매개변수 X, 반환값 X
void print99dan() {
for (int i = 1; i < 10; i++) {
for (int j = 1; j < 10; j ++) {
System.out.print(j*i + " ");
}
System.out.println();
}
}
}
// class 파일
public class Method02 {
// main 메서드
// 접근제어자 정적메서드 반환타입 메소드명(매개변수) { ...구현부 }
public static void main(String[] args) {
Example ex1 = new Example();
ex1.print99dan();
// ex1.add(10, 20, 30); - Error
// ex1.add("10", "20"); - Error
ex1.add('a', 'b'); // char 타입(2) >> int 타입(4) : 자동 형 변환
System.out.println(ex1.multiply(10, 20)); // 200
}
}
(예제 코드)
더보기
class BaseballPlayer {
// 인스턴스 변수
// 선수 이름,(name - 문자열)
// 타율(battingAverage - 실수)
// 홈런 수(homeRuns - 정수)
String name;
double battingAverage;
int homeRuns;
// 정적(클래스) 변수
// : 생성된 선수의 총 인원(playerCount - 정수)
// >> 모든 인스턴스에서 공유
static int playerCount = 0;
// 생성자 >> 인스턴스 변수 초기화 & 정적 변수 후위 증가 (변수명++)
BaseballPlayer(String name, double battingAverage, int homeRuns){
this.name = name;
this.battingAverage = battingAverage;
this.homeRuns = homeRuns;
playerCount++;
}
// 인스턴스 메서드
// 선수의 타율과 홈런 수를 업데이트 하는 메서드
// >> 매개변수로 newBattingAverage, newHomeRuns를 받아 기존의 인스턴스 변수에 재할당
void Update(double newBattingAverage, int newHomeRuns){
this.battingAverage = newBattingAverage;
this.homeRuns = newHomeRuns;
}
}
public class MethodPractice {
public static void main(String[] args) {
BaseballPlayer player1 = new BaseballPlayer("홍창기", 0.41, 5);
BaseballPlayer player2 = new BaseballPlayer("레이예스", 0.43, 15);
BaseballPlayer player3 = new BaseballPlayer("황성빈", 0.28, 2);
System.out.println("총 생성된 선수의 수: "+BaseballPlayer.playerCount);
}
}