자바

[자바]객체 실습 - 포켓몬

취준생코린이 2021. 4. 22. 12:49
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