728x90
먼저 필드, 생성자, 메소드를 작성해줄 Pockemon 클래스를 만들어 준다
package Pockemon;
public class Pockemon {
// 스스로 동작X 설계만 진행하는 클래스 --> main 메소드를 쓰지 않겠다
// 포켓몬 설계도 -> 포켓몬 정보 저장, 기능
// 포켓몬 정보 : 속성(타입) - String, 이름- String, 방어력 - int, 공격력 - int, 체력 - int
// 포켓몬 속성 정의
// private : 접근지정자 제한주기 -> 다른 사용자에 의해서 정보가 수정되지 않도록 하기 위함!
private String type;
private String name;
private int defense;
private int attack;
private int hp;
// 생성자 메소드
public Pockemon(String name, String type, int defense, int attack, int hp) {
this.type = type;
this.name = name;
this.defense = defense;
this.attack = attack;
this.hp =hp;
}
// 메소드 get : 속성을 조회
public String getType() {
return type;
}
public String getName() {
return name;
}
public int getDefense() {
return defense;
}
public int getAttack() {
return attack;
}
public int getHp() {
return hp;
}
// 메소드 set : 속성을 변경
public void setType(String type) {
this.type = type;
}
public void setName(String name) {
this.name = name;
}
public void setDefense(int defense) {
this.defense = defense;
}
public void setAttack(int attack) {
this.attack = attack;
}
public void setHp(int hp) {
this.hp = hp;
}
}
get는필드값을 불러와 보여주는 역활을 하고
set는 필드값을 바꿔주는 역활을 한다.
포켓몬 클래스를 만들어 줬으면 다음으로는 main클래스를 만들어준다.
package Pockemon;
import java.util.ArrayList;
public class PockemonMain {
public static void main(String[] args) {
// 1. Pockemon 클래스를 통하여 mon1 객체 생성
Pockemon mon1 = new Pockemon("파이리","불꽃" ,43 ,52 ,39);
Pockemon mon2 = new Pockemon("피카츄", "전기", 40, 55, 35);
Pockemon mon3 = new Pockemon("꼬부기", "물", 65, 48, 44);
System.out.println("mon1의 이름 : " + mon1.getName() + ", 타입 : " + mon1.getType());
System.out.println("mon2의 이름 : " + mon2.getName()+ ", 타입 : " + mon2.getType());
System.out.println("mon3의 이름 : " + mon3.getName()+ ", 타입 : " + mon3.getType());
System.out.println();
mon2.setType("물"); // 피카츄의 타입을 물로 바꿈
System.out.println("mon2의 이름 : " + mon2.getName()+ ", 바뀐 타입 : " + mon2.getType());
mon2.setType("전기"); // 피카츄의 타입을 전기로 돌려줌
System.out.println("mon2의 이름 : " + mon2.getName()+ ", 돌아온 타입 : " + mon2.getType());
System.out.println();
System.out.println("파이리의 방어력 : " + mon1.getDefense() + ", 공격력 : " + mon1.getAttack() + ", 체력 : " + mon1.getHp());
System.out.println("피카츄의 방어력 : " + mon2.getDefense() + ", 공격력 : " + mon2.getAttack() + ", 체력 : " + mon2.getHp());
System.out.println("꼬부기의 방어력 : " + mon3.getDefense() + ", 공격력 : " + mon3.getAttack() + ", 체력 : " + mon3.getHp());
System.out.println();
// 포켓몬을 담을 수 있는 가방 만들기 => 배열사용
int[] arr = new int[3];
arr[0] = 1;
arr[1] = 3;
arr[2] = 4;
Pockemon[] pocke = new Pockemon[3];
pocke[0] = mon1;
pocke[1] = mon2;
pocke[2] = mon3;
System.out.println("=============================================================");
// 반복문을 활용하여 한번에 포켓몬 정보 가져오기
for(int i = 0; i< pocke.length; i++) {
System.out.println("mon" + (i+1) + "의 이름 : " + pocke[i].getName());
System.out.println("mon" + (i+1) + "의 타입 : " + pocke[i].getType());
System.out.println("mon" + (i+1) + "의 방어력 : " + pocke[i].getDefense());
System.out.println("mon" + (i+1) + "의 공격력 : " + pocke[i].getAttack());
System.out.println("mon" + (i+1) + "의 체력 : " + pocke[i].getHp());
System.out.println();
}
System.out.println("=============================================================");
// 가변리스트를 활용하여 사용자가 원하는 타입으로 생성하기
// 1. import 작업 실행해주기
// 2. 어떤 타입으로 가변리스트를 생성할지 타입 지정
ArrayList <Pockemon> pockeList = new ArrayList<Pockemon>(); // 타입에 Pockemon을 적는다. 여러가지 타입이 섞어있어서
pockeList.add(mon1);
pockeList.add(mon2);
pockeList.add(mon3);
for(int i = 0; i< pockeList.size(); i++) {
System.out.println("mon" + (i+1) + "의 이름 : " + pockeList.get(i).getName());
System.out.println("mon" + (i+1) + "의 타입 : " + pockeList.get(i).getType());
System.out.println("mon" + (i+1) + "의 방어력 : " + pockeList.get(i).getDefense());
System.out.println("mon" + (i+1) + "의 공격력 : " + pockeList.get(i).getAttack());
System.out.println("mon" + (i+1) + "의 체력 : " + pockeList.get(i).getHp());
System.out.println();
}
}
}
그러면 위의 Main클래스에서 포켓몬 클래스를 이용하여 객체를 생성하여 출력할 수 있다.
이때 배열이나 ArrayList를 이용하면 더 쉽게 작성할 수 있다.
728x90
'자바' 카테고리의 다른 글
[자바]포켓몬- Scanner로 만들기 (0) | 2021.04.27 |
---|---|
[자바]객체 정의 (붕어빵) (0) | 2021.04.22 |
[자바]배열 Collection (0) | 2021.04.20 |
[자바]메소드(Method)란? (0) | 2021.04.16 |
[자바]2차원 배열 (0) | 2021.04.16 |