안녕하세요


지난시간에는 생성자라는 것에 대해 배웠습니다.


이번시간에는 생성자의 존재가치에 대해 배워보겠습니다.






1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Study01.java
 
package study;
 
public class Study01 {
 
    public static void main(String[] args) {
 
        Slime s1 = new Slime();
        s1.name = "슬라삐";
        
    }
 
}
cs


9행에서 s1이라는 슬라임 객체를 만들어줬고, 10행에서 그 객체에 이름을 정해줬습니다. 마치 어떤 홈페이지에 회원가입할때 아이디를 정하고 실명을 입력시키는 것과 비슷하네요.


자, 그런데말입니다. 생성자를 이용하면 이 과정을 한줄로 축약할 수 있습니다. 슬라임 클래스로 가서 아래와 같이 생성자를 수정해주세요.





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
// Slime.java
 
package study;
 
public class Slime {
    
    String name;
    int hp;
    
    
    // 생성자
    public Slime(String n) {
        
        name = n;
        
    }
 
    
    // 공격
    public void attack() {
        
        System.out.println(name + "는 인간을 공격했습니다");
 
    }
}
 
cs


생성자도 함수이기 때문에 인수를 넣어줄 수가 있어요. 인수가 들어오면 그 값을 일단 n 변수가 받는데, 14행에서 n에 들어있는 값을 name 변수에 집어넣는군요! 컨트롤+S를 눌러 저장해놓고, 스터디01 클래스로 다시 돌아옵시다.






어라? 9행에 에러가 나있네요? 생성자에 인수를 넣도록 수정했는데 괄호속이 비어있어서 나는 에러입니다. 괄호속에 슬라임의 이름을 적고 10행은 삭제해주도록 합시다.






이름이 잘 들어갔는지 확인해보기 위해 어택 함수도 적어줬습니다. 콘솔창에 출력이 잘 되었군요^^



이 시점에서, 객체를 생성하는 공식에 대한 설명을 조금 정정할 필요가 있어 보이는군요.



클래스명 변수명 = new 생성자(인수);




게임이 구성되려면 슬라임 클래스만 있어서는 안되겠죠? 다음 시간에는 인간 클래스도 만들어보겠습니다.


감사합니다.

+ Recent posts