Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

forest_moon

[Java] 자바, 입문하기! 메소드 본문

JAVA/inflearn정리

[Java] 자바, 입문하기! 메소드

rokga 2023. 4. 2. 19:55

타입과 형 변환

 

나눗셈 연산 주의

int와 int의 연산 결과는 int이다. double과 int의 연산은 double이다. 숫자간 연산은 더 큰 타입을 따른다.

double a = 5.0 / 2.0; // 2.5
int b = 4 / 2;        // 2
int c = 5 / 2;        // 2.5 (X) => 2 (O)

타입 불일치 주의

변수에 값 대입 시, 그 값이 변수의 타입과 일치해야 한다.

// 타입 불일치 에러
int score = "100";
// 해결 방법
int score = 100;      // int로 일치
String score = "100"; // String으로 일치
int score = Integer.parseInt("100"); // "100" => 100

 

타입 변환 주의

타입 불일치의 문제는 타입 변환을 통해 해결가능하다. 타입변환은 자동 변환과 직접 변환이 있다.

자동 변환

int는 double로 대입될 수 있다. 2를 2.0으로 보아도 무방하다. 이러한 자동 변환은 더 큰 타입으로 대입 시 발생한다. (byte(1) < short(2) < int(4) < long(8))

// 자동 변환 (더 큰 타입으로 대입될 때)
double p = 2;  // 2 => 2.0
int n = 5 / 2; // 2
double q = n;  // 2 => 2.0

 

직접 변환

거꾸로 double은 int로 대입될 수 없다. 10.4를 10이라고 볼 수 없기때문. 강제로 소수점을 버리고 정수로 만들 순 있다. 이러한 문법을 타입 캐스팅(casting)이라 한다.

// 에러 발생
int r = 10.4; // ERROR
// 실수를 정수로 강제 캐스팅
int r = (int) 10.4; // 10.4 => 10

 

 

요약

  • int 와 int의 연산 => int
  • 타입 불일치(type mismatch)란, 값과 변수의 타입이 달라 생기는 에러다.
  • 타입은 때때로 자동 변환(implicit conversion)되기도 한다.
  • 필요 시 타입을 직접 변환(explicit conversion)할 수 있다.
  • double은 int로 캐스팅(casting) 가능하다.

 

메소드 호출과 정의

일련의 코드 묶음을 간편하게 실행할 순 없을까?

 

실생활 메소드들

자판기에 돈을 넣으면, 음료가 나온다. 햄버거 세트 메뉴도 번호만 알려주면 주문이 된다. 프로그래밍 또한 마찬가지다. 일련의 코드를 단순화하여 사용할 수 있다. 이를 메소드(methods)라 한다

 

메소드

일련의 코드를 단순화한 문법. 이를 메소드라 한다. 메소드는 입력에 따른 결과를 반환한다.

 

메소드 호출

 

만들진 메소드를 사용하는 것. 이를 메소드 호출이라 한다. 아래는 절댓값, 반올림을 반환하는 예이다.

 

 

메소드 정의

메소드를 사용하기에 앞서

메소드를 사용하려면, 먼저 만들어져 있어야 한다. 다시 말해, 메소드가 정의돼 있어야한다.

 

메소드 구조

메소드를 만들려면, 그 구성 요소를 알아야 한다. 메소드는 크게 4가지로 이루어져 있다.

① 메소드명(methods name)은 호출 시 사용한다. ② 입력 변수(parameters)는 입력 값을 저장한다. ③ 반환 값(return value)은 반환될 값이다. ④ 반환 타입(return type)은 반환 값의 타입이다.

 

 

 

메소드 만들기

정수값의 제곱을 반환하는 메소드를 만들어보자.

 

이를 위해 먼저, ①메소드명을 square로 작성한다.

public static ④TYPE square(②PARAMETER) {
  ...
  return ③VALUE;
}

다음으로 호출 시, 입력되는 정수 3을 받기 위해 ②파라미터(입력 변수) int n을 추가한다.

public static ④TYPE square(int n) {
  ...
  return ③VALUE;
}

이제 제곱값을 만들기 위한 일련의 코드를 작성하고, 최종 ③반환 값을 지정한다.

public static ④TYPE square(int n) {
  int result;
  result = n * n;
  return result;
}

마지막 반환 값의 ④타입을 정의한다.

public static int square(int n) {
  int result;
  result = n * n;
  return result;
}

이제 square() 메소드는 아래와 같이 호출 가능한다.

int z = square(4); // 입력: 4 => 반환: 16
System.out.println(z); // 16

 

요약

  • 메소드는 일련의 코드를 단순화한다.
  • 메소드는 입력에 따른 결과를 반환한다.
  • 메소드는 호출부와 정의부로 나뉜다.
  • 메소드의 구성 요소는 이름 / 입력 변수 / 반환 값 / 반환 타입이다.