클래스(class)
클래스란 객체의 설계도이다. 즉, 동일한 속성과 행위(를 수행하는 객체의 집합이다.
- 속성 : 멤버 변수 , 특성 , 필드
- 행위 : 메소드
어떠한 객체의 변수(variable), 메서드(method)의 집합이라고 표현할 수 있다.
아래의 코드를 살펴보면 , movieName, director, runtime 이 멤버 변수가 되고, movie_info라는 함수가 영화의 정보를 표현해 주는 기능을 하는 메서드이다.
객체를 만드는 방법
클래스로 정의한 movie라는 클래스를 생성해보면, new라는 키워드를 통해 ("HarryPotter", "allen", 120)이라는 인자를 받는 a라는 객체가 생성됨을 알 수 있다.
메서드를 정의하는 방법
메서드는 객체의 동작을 수행하는 부분을 뜻한다. 메서드를 호출하게 되면 중괄호 아래의 모든 코드들이 일괄적으로 수행된다.
아래 코드를 확인하면, movie_info라는 함수가 있고, 이 함수는 영화 클래스 멤버 변수 중 movieName과 director를 출력하는 기능을 한다. 이를 main에서 불러서 사용해 보면 기능이 잘 수행되는 것을 알 수 있다.
생성자를 정의하는 방법
객체를 생성할 때 해야 할 일을 정의하는 메서드를 생성자라고 부른다.
특징은, - 클래스와 이름이 같음
- 반환 형식을 사용할 수 없음
- 하나 이상 존재해야 한다.
필드를 초기화해준다.
그 이유는 동일한 이름을 가지는 클래스 안의 객체들은 처음에 모두 똑같은 데이터를 가지고 있는데 그 객체마다 값을 변경해 주기 위해 초기화를 한다.
예제로 확인해보면, 생성자를 정의하지 않았을 경우 기본값으로 설정된 값이 객체를 생성할 때 데이터로 입력이 된다.
생성자를 정의했을 경우에는 객체를 생성할 때 입력하였던 매개 변수로 필드 값이 할당되는 것을 볼 수 있다.
이렇게 필드를 초기화해야 객체의 인스턴스를 생성할 때 매개변수를 원하는 값으로 바꿔 줄 수 있다.
생성자를 여러 개 만들 수도 있다.
매개 변수의 개수에 따라 생성자가 다르게 객체가 생성된다
this라는 키워드 이해하기
생성자를 초기화할 때 this. 변수명 = 변수명; 이러한 내용을 뒤 예제에서 보았을 것이다. 여기서 this를 붙이는 이유는 클래스에서 선언된 멤버 변수의 자리에 매개 변수로 들어온 변수를 할당하겠다는 의미를 나타내기 위함이다.
즉, 매개 변수로 받는 인자가 멤버 변수와 다른 이름을 갖는 다면 this라는 키워드는 생략이 가능하다.
위의 예제의 runtime을 k로 변경해도 오류가 나지 않는다.
'Java > Study' 카테고리의 다른 글
[JAVA] 백기선 라이브 스터디 9주차 예외처리 (0) | 2021.01.13 |
---|---|
[JAVA]백기선 라이브 스터디 8주차 (0) | 2021.01.08 |
[Java]백기선 라이브 스터디 7주차 (0) | 2021.01.02 |
[Java] 백기선 라이브 스터디 6주차 과제 (0) | 2020.12.26 |
[Java] 백기선 스터디 4주차 과제 (0) | 2020.12.11 |