본문 바로가기
JAVA

JAVA - 클래스의 구성

by 스노위13 2022. 7. 15.

* 클래스의 구성을 읽기 전에 먼저 클래스와 객체를 읽어주세요!

https://codewos.tistory.com/36

클래스는 필드, 생성자, 메소드로 구성되어 있다. 이 세 가지는 클래스 내에서 생략되거나 여러 개를 만들어 낼 수도 있다. 지난번 '클래스와 객체' 글처럼 쿠키런 킹덤의 쿠키들로 이들에 대해서 살펴보자. 

1. 필드 : 클래스에 포함되어 있는 변수로 객체의 데이터가 저장되는 곳

쿠키공장에서 쿠키를 만든다고 생각해보자. 각각 다른 쿠키를 만드려면 각 쿠키의 속성이 달라야 한다. 이러한 속성값은 클래스의 필드에 선언된다. 아래와 같이 쿠키 공장을 간단하게 만들어 보았다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package cookieFactory;
 
public class Cookie {
    
    String cookieName;          // 이름
    String cookieClass;         // 등급
    String cookieType;          // 타입
    String cookieSkill;         // 스킬
    int level;                  // 시작 레벨
    
    public Cookie() {}
 
    public Cookie(String cookieName, String cookieClass, 
String cookieType, String cookieSkill, int level) {
        this.cookieName = cookieName;
        this.cookieClass = cookieClass;
        this.cookieType = cookieType;
        this.cookieSkill = cookieSkill;
        this.level = level;
    }
}
cs


위의 코드를 살펴보자. 내가 설정한 값에 따르면 쿠키를 만들 때는 이름, 등급, 타입, 스킬, 시작 레벨을 설정해줘야 한다. 또한 다른 클래스에서도 사용할 수 있도록 만들어 주었는데 Alt+Shift+S를 누르면 아래 사진처럼 메뉴가 뜨고 이 중에서 'Generate Constructor using Fields'를 클릭하면 쉽게 만들 수 있다. 

그러면 필드와 생성자를 사용하여 MakeCookie 클래스에서 공주맛 쿠키와 바다요정 쿠키를 각각 만들어 보자.

2. 생성자 : 객체 생성 시 new 연산자로 호출되며 인스턴스 변수를 원하는 값으로 초기화를 해준다. 메소드와의 차이는 클래스 이름으로 되어있다는 것과 리턴 타입이 없다는 것이다.

1
2
3
4
5
6
7
8
9
10
11
package cookieFactory;
 
public class MakeCookie {
    
//  클래스명  쿠키이름       //생성자 //필드값
    Cookie princessCookie = new Cookie("공주맛쿠키""RARE","돌격형","로얄케인 스윙",1);
   Cookie seaFairyCookie = new Cookie("바다요정쿠키""LEGENDARY","폭발형","솟구치는 마음",1);
 
}
 
 
cs


생성자를 사용하여 두 개의 쿠키를 만들어보았다. 두 쿠키는 쿠키이름과 필드값이 각각 달라 구분이 가능하다. 이렇게 넣은 필드값은 읽고 변경하는 작업이 가능한데 이를 필드 사용이라고 한다. 게임에서 전투 시 스킬을 사용할 때나 레벨이 올라서 값을 변경해야할 때 필드를 사용할 수 있다. 

3. 메소드 : 객체의 동작에 해당하는 중괄호({ }) 블록으로 자신만의 이름을 가지고 있다. 필드를 읽거나 수정하거나 객체를 생성하여 다양한 기능을 수행한다. 외부로부터 매개값을 받거나 실행 후 값을 리턴하여 객체 간의 데이터를 전달하는 수단으로 사용된다. 

메소드에 대해서는 다음 글에서 더 자세히 살펴보자!

 

참고 : 도서 <이것이 자바다>

댓글