본문 바로가기

자바 (Java)/요약

Chpt 6. 객체 지향 프로그래밍 - 주제 2. 클래스는 변수와 메서드의 묶음이다.

728x90

1. 변수

 

1) 변수의 종류

 

앞서 변수의 타입에는 기본형 8가지와 그 외 참조형이 있다는 것을 배웠다. 변수의 종류는 선언 위치에 따라 3가지로 구분한다. 변수를 선언할 때 변수의 범위를 최대한 좁히는 것이 좋다.

 

변수의 종류 선언 위치 사용 방법 사용 가능 시점
인스턴스 변수 (iv) 클래스 영역 참조형 변수.인스턴스 변수 객체 생성 이후
클래스 변수 (static + iv) 클래스 이름.클래스 변수 메모리에 로딩 될 때 = 객체 생성 이전 (항상)
지역 변수 (lv) 메서드 영역 지역 변수 메서드 호출 시

 

클래스 내 영역 중 메서드 영역은 메서드의 선언부, 구현부이고 그 외 영역은 모두 클래스 영역이다. 따라서 메서드의 매개변수 또한 지역 변수이며 이는 나중에 설명하도록 하겠다. 위 표는 외우도록 하자.

 

2) 클래스 변수와 인스턴스 변수의 구분

 

보통 클래스, 인스턴스 변수의 구분을 어려워하는데 둘의 사용 가능 시점을 기준으로 구분할 수 있다. 

 

인스턴스 변수는 고유의 속성,
클래스 변수는 공통의 속성

 

인스턴스 변수는 객체를 생성한 이후 사용할 수 있기 때문에 생성된 객체를 구분지어 줄 수 있는 고유의 속성을 나타내는데 사용한다. 반면 클래스 변수는 객체 생성 이전, 즉 항상 사용할 수 있기 때문에 모든 객체의 공통적인 속성을 나타내는데 사용한다. 예를 들어 카드 게임의 카드 색깔, 숫자, 모양은 고유의 속성인 반면 높이와 폭은 공통의 속성이다. 

 

2. 메서드

 

메서드 역시 클래스의 장점과 같은 필요성에 의해 도입됐다. 참고로 클래스 안에 있는 함수를 메서드라고 할 뿐 둘은 다른 것이 아니다.

 

메서드는 선언부와 구현부로 나누어진다.

 

반환 타입 메서드 이름 (매개 변수 선언 목록) { // 입력 (0 ~ n개), 출력 (0 ~ 1개)
        // 문장 ...
        return 반환값;
}

 

블록 포함, 그 안을 모두 구현부라하고 그 외를 선언부라 한다. 

 

1) 선언부

 

  사용 방법 특징
매개 변수 선언 목록 (타입 변수, 타입 변수, ...) (1) 타입이 같아도 생략 불가
(2) 매개 변수가 필요 없으면 ()
반환 타입 타입 타입이 없으면 void 적음

 

2) 구현부

 

  사용 방법 특징
return문 return 반환값 (1) 선언부의 리턴 타입 >= 반환값의 타입
(2) 타입이 void이면 생략 가능 (컴파일러가 return; 자동 추가)
(3) 여러 개를 반환하고 싶으면 객체 또는 배열의 형태로 반환
(4) 반환값은 생략 가능하며 이 경우 리턴 타입이 void이거나 매개변수의 유효성 검사에 사용
(5) 반환값은 변수 또는 수식을 사용
지역 변수 타입 변수 (1) 매개변수도 지역변수
(2) 다른 메서드의 변수 이름과 같아도 상관 없음

 

3) 메서드의 호출

 

메서드의 호출은 다음과 같다.

 

메서드 이름(값1, 값2, 값3, ...);

 

이때 값들을 인자라고 하고 매개 변수 타입 >= 인자 타입이어야 한다. 또한 return문으로 반환된 값은 저장하지 않아도 된다.

반응형