[자바_일지]10/24_클래스 활용예제_전사문제

김동하·2023년 10월 24일
0

teckit

목록 보기
3/5

문제

package org.example;
class Main {
    public static void main(String[] args) {
        전사 a전사 = new 전사();
        a전사.이름 = "카니";
        a전사.나이 = 22;
        a전사.a무기 = new();
        a전사.공격();
        // 출력v1 : 전사가 칼로 공격합니다.
        // 출력v2 : 22살 LearnJava.전사 카니님이 칼로 공격합니다.

        a전사.이름 = "초코";
        a전사.a무기 = new();
        a전사.공격();
        // 출력v1 : 전사가 활로 공격합니다.
        // 출력v2 : 22살 LearnJava.전사 초코님이 활로 공격합니다.
    }
}

정답코드

package org.example;

import javax.xml.namespace.QName;

class Main {
    public static void main(String[] args) {
        전사 a전사 = new 전사(); //전사()객체와 연결된 a전사 라는 리모컨
        a전사.이름 = "카니";//전사 안에 이름이라는 변수안에 값은 카니
        a전사.나이 = 22; //전사 안에 나이라는 변수안에 값은 22
        a전사.a무기 = new(); //전사안에 a무기라는 변수에 칼()이라는 객체 리모콘을 연결
        a전사.공격(); //전사의 공격메소드 호출 -> 전사안에 공격버튼만들기
        //공격 메소드
        // 출력 : 전사가 칼로 공격합니다.
        // 칼 클래스의 메서드가 작동

        a전사.이름 = "초코";
        a전사.a무기 = new(); //전사안에 a무기라는 변수에 활()객체리모콘을 연결
        a전사.공격();
        // 출력 : 전사가 활로 공격합니다.
        // 활 클래스의 메서드가 작동
    }
}
class 전사{
    String 이름;
    int 나이;
    무기 a무기; //칼도 활도 리모콘 이 들어가려면 무기 라써야함.
    //무기라는 변수 타입? or 무기라는 객체?

    //전사안에 공격버튼 만들기
    void 공격(){

        // 직접 이렇게 하지 않음 . System.out.println("공격하라");
        a무기.작동(this.이름, this.나이); //자신이 들고있는 무기한테 공격이라는 일을 위임.

    }
}

abstract class 무기 {
    String weapon;
    //리모콘 버튼 만들기
    abstract void 작동(String 이름, int 나이) ;
}
classextends 무기{
    void 작동(String 이름, int 나이){
        System.out.println(나이+" 살 " + 이름+ "이가 공격");
    }
}
classextends 무기{
    void 작동(String 이름, int 나이){
        System.out.println(나이+"살 "  + 이름+ "이가 공격");
    }
}

23_10_25

package org.example;
class Main {
    public static void main(String[] args) {
        전사 a전사 = new 전사(); //* 전사를 조종할 a전사 리모콘 생성및연결
        a전사.이름 = "카니"; //* 이름변수에 초코
        a전사.나이 = 22;// *나이 변수에 22
        a전사.a무기 = new(); // * 칼을 조종할 a무기 버튼을 a전사리모콘에 생성및 연결
        a전사.공격();  // *a전사 리모콘으로 공격 시작
        // 출력v1 : 전사가 칼로 공격합니다.
        // 출력v2 : 22살 LearnJava.전사 카니님이 칼로 공격합니다.

        a전사.이름 = "초코";  // 이름 변수에 초코로 초기화
        a전사.a무기 = new(); // 활을 조종할 a무기버튼을 a전사 리모콘에 생성및연결
        a전사.공격();
        // 출력v1 : 전사가 활로 공격합니다.
        // 출력v2 : 22살 LearnJava.전사 초코님이 활로 공격합니다.



    }
}
//* 전사를 조종할 a전사 리모콘 생성및연결
//전사 클래스에는 이름, 나이, 무기 버튼
class 전사{
    String 이름; //* 이름변수에 초코
    int 나이; //*나이 변수에 22

    // * 칼을 조종할 a무기 버튼을 a전사리모콘에 생성및 연결
    무기 a무기; //1번. a무기 버튼을 a전사리모콘에 생성

    //* a전사 리모콘으로 공격 시작
    void 공격(){
        a무기.작동(this.이름, this.나이);
    } //1번 칼과 활에게 위임해야하므로 선언만하기

}
//* a전사 리모콘으로 공격 시작
//1번 칼과 활에게 위임해야하므로 선언만하기
//2번 무기클래스에 칼과 활을 조종할 작동리모콘 연결
abstract class 무기{
    abstract void 작동(String 이름, int 나이);
}//2번 무기클래스에 칼과 활을 조종할 작동리모콘 연결


//* 칼을 조종할 a무기 버튼을 a전사리모콘에 생성및 연결
//1번. a무기 버튼을 a전사리모콘에 생성

// 출력v2 : 22살 LearnJava.전사 초코님이 활로 공격합니다.
classextends 무기 { //2번. 칼을 조종
    void 작동(String 이름, int 나이){
        System.out.println(나이 +"살 전사"+ 이름+"님이 활로 공격합니다." );
    }

}

classextends 무기 {
    void 작동(String 이름, int 나이){
        System.out.println(나이 +"살 전사"+ 이름+"님이 활로 공격합니다." );
    }

}

0개의 댓글