JavaStudy/Basic

[Java] 13. 클래스와 인스턴스

LeeDaniel 2024. 11. 27. 10:02

 

// 사이퍼를 설계하기위한 클래스
class Cypher {

    String name; // 사이퍼 이름
    int age; // 사이퍼 나이
    String job; // 사이퍼 직업

    public Cypher(){}

    public Cypher(String name, int age, String job) {
        this.name = name;
        this.age = age;
        this.job = job;
        System.out.println(this.name + " 생성");
    }

    public void setName(String name){
        this.name = name;
    }

    public void setAge(int age){
        this.age = age;
    }

    public void setJob(String job){
        this.job = job;
    }

    public void move(int x, int y) {
        System.out.println(this.name + "을 x축 : " + x + ", y축 : " + y + " 좌표로 이동 시킵니다");
    }

    public void recoveryHealthPoint(int hp) {
        System.out.println(this.name + "의 체력을 " + hp + "만큼 회복 시킵니다");
    }

}

public class CypherDemo {

  public static void main(String[] args) {

    // 메소드를 이용해 도일 속성값 할당
    Cypher doyle = new Cypher();
    doyle.setName("도일");
    doyle.setAge(38);
    doyle.setJob("토목기술자");
    doyle.move(35, 70);
    doyle.recoveryHealthPoint(88);

    // 생성자를 이용해 휴톤 속성값 할당
    Cypher huton = new Cypher("휴톤", 37, "백수");
    huton.move(10, 200);
    huton.move(45, 125);
    huton.recoveryHealthPoint(8);
    huton.recoveryHealthPoint(80);
  }

}

 [ 실행결과 ] 



 [ 클래스 ] 
-클래스는 반복적으로 사용하기 위한 대상을 인스턴스화 시키기 위한 설계도이며
 필요에 따른 변수(속성)와 메소드(기능)로 구성되고
 main()메소드를 찾아서 실행시킨다

// 클래스 선언 방법
class 클래스명{
  // 클래스 내용 작성
}

 [ 인스턴스 ] 
-설계된 클래스를 사용하기 위해 동적메모리(heap memory)에 할당된 상태로
 클래스는 제품을 위한 설계도, 인스턴스는 설계도로 만들어진 제품으로 이해하면 된다

// 인스턴스는 new 키워드를 이용해 선언할수있고
Cypher huton = new Cypher();
huton.setName("휴톤");
huton.setAge(37);
huton.setJob("백수");

// 선언된 인스턴스는 정의된 변수(속성)과 메소드(기능)을 사용할 수 있다
System.out.println(huton.name + "의 나이는 : " + huton.age );
System.out.println(huton.name + "의 직업은 : " + huton.job );
huton.move(10, 200);
huton.recoveryHealthPoint(8);
실행결과
휴톤, 도일

 

 

728x90
반응형

'JavaStudy > Basic' 카테고리의 다른 글

[Java] 14. 상속(Intheritance)  (0) 2024.11.27
[Java] 12.생성자  (0) 2024.11.05
[Java] 11.입력과 출력  (0) 2024.11.05
[Java] 10.메소드(method)  (0) 2024.11.05
[Java] 9.배열  (0) 2024.11.05