객체지향 프로그래밍 생성자,getter,setter

2023. 9. 11. 11:26java

생성자

 

get과 set

 

ArrayList <-- 필드 생성자 다 차지하느라 용량 많이 차지함 vs 배열
 1.user가 데이터 추가/삭제 해야한다 => ArrayList
 2.개발자가 데이터 개수를 정해둔다 => 배열

 

package ex04;

import java.util.ArrayList;
import java.util.Scanner;

import ex04.poketmon;

public class main {

	public static void main(String[] args) {
		// 포켓몬 도감 만들기
		Scanner sc = new Scanner(System.in);
		// ArrayList <-- 필드 생성자 다 차지하느라 용량 많이 차지함 vs 배열
		// - user가 데이터 추가/삭제 해야한다 => ArrayList
		// - 개발자가 데이터 개수를 정해둔다 => 배열

		// poketmon type 객체 저장
		ArrayList<poketmon> poke = new ArrayList<poketmon>();

		// 2번 main클래스에 메뉴 무한반복하며 출력[1]추가하기 [2]삭제하기 [3]검색하기

		// 3번 입력한 번호에 따라 기능 실행하기
		while (true) {
			System.out.println("[1]추가하기 [2]삭제하기 [3]검색하기 [4]종료하기");
			System.out.print("번호 입력 : ");
			int num = sc.nextInt();

			// 추가 선택시 포켓몬의 정보 입력하여 저장하기
			if (num == 1) {
				System.out.print("도감번호 : ");
				int dogam = sc.nextInt();

				if (dogam == 1 || dogam == 2) {
					System.out.print("이름 : ");
					String a = sc.next();

					System.out.print("공격력 : ");
					int b = sc.nextInt();

					System.out.print("방어력 : ");
					int c = sc.nextInt();

					System.out.print("지역 : ");
					String d = sc.next();
					poke.add(new poketmon(a, b, c, d));
				} else {
					System.out.print("마지막 포켓몬 : ");
					String a = sc.next();

					System.out.print("공격력 : ");
					int b = sc.nextInt();

					System.out.print("방어력 : ");
					int c = sc.nextInt();

					System.out.print("지역 : ");
					String d = sc.next();
					poke.add(new poketmon(a, b, c, d)); //   poketmon po = new poketmon(name,area,attack,shield);
	                                                    //   poke.add(po);
				}

				// 삭제 선택시 현재 저장된 모든 포켓몬의 정보 출력하고 번호 입력받아 삭제하기
			} else if (num == 2) {
				System.out.println("포켓몬 정보");
				for (int i = 0; i < poke.size(); i++) {
					System.out.print(poke.get(i).getName() + "\t");
					System.out.print(poke.get(i).getAttack() + "\t");
					System.out.print(poke.get(i).getShield() + "\t");
					System.out.print(poke.get(i).getArea());
					System.out.println();
				}
				System.out.print("삭제도감 : ");
				int a = sc.nextInt();
				poke.remove(a - 1);
				// 삭제후 전체 조회
				System.out.println("남은 포켓몬");
				for (int i = 0; i < poke.size(); i++) {
					System.out.print(poke.get(i).getName() + "\t");
					System.out.print(poke.get(i).getAttack() + "\t");
					System.out.print(poke.get(i).getShield() + "\t");
					System.out.print(poke.get(i).getArea());
					System.out.println();
				}
				// 검색 선택시 포켓몬 이름 입력받아 동일한 정보 출력하기
			} else if (num == 3) {
				System.out.print("검색 : ");
				String a = sc.next();
				boolean check = false;
				
				for(int i=0; i<poke.size();i++) {
					if(poke.get(i).getName().contains(a)) {
						System.out.println(poke.get(i).getName());
						System.out.print(poke.get(i).getName() + "\t");
						System.out.print(poke.get(i).getAttack() + "\t");
						System.out.print(poke.get(i).getShield() + "\t");
						System.out.print(poke.get(i).getArea());
						check=true;
					}
				}
				if(!check) {
					System.out.println("정보가 없습니다.");
				}
			}else {
				System.out.println("종료되었습니다.");
				break;
			}
		}
	}
}
package ex04;

public class poketmon {
	
	// 1번 포켓몬 생성 할 수 있는 클래스 설계 <-- 이름(name),공격력(attack),방어력(shield),출몰지역(area)
	// vo 구성요소 - 필드, 생성자, get/set
	
	//필드
	private String name;
	private int attack;
	private int shield;
	private String area;
	
	//생성자
	public poketmon(String name, int attack, int shield, String area) {
		this.name = name;
		this.attack = attack;
		this.shield = shield;
		this.area = area;
	}
	
	//get과 set
	public String getName() {
		return name;
	}

	public int getAttack() {
		return attack;
	}

	public int getShield() {
		return shield;
	}

	public String getArea() {
		return area;
	}
}

'java' 카테고리의 다른 글

MVC  (4) 2023.09.12
switch문  (0) 2023.09.12
객체지향  (0) 2023.09.08
객체 지향 프로그래밍(Object Oriented Programming --> OOP)  (0) 2023.09.08
ArrayList  (0) 2023.09.06