객체지향 프로그래밍 생성자,getter,setter
2023. 9. 11. 11:26ㆍjava
생성자

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;
}
}