package ex02;
//설계도
public class kakao {
//필드 : 5개
private String nick;
private String message;
private String pickture;
private long day;
private String email;
//메소드 : 3개
public kakao(String nick, String email) { //필드에 있는것을 초기화 해준다.
//변수영역에 있는 필드에 매개변수로 전달된 값 복사
//객체 생성할때 1번만 생성가능하다.
//필드 //메소드
this.nick = nick;
this.email=email;
}
public void setNick(String nick) {
this.nick = nick;
}
public String getNick() {
return nick;
}
}
1. set 메소드는 지역변수가 있기때문에 구분하기 위해서 this를 넣어준다.
1-5. set 메소드는 내용을 수정할때 쓰인다.
2. get메소드는 구분할 필요가 없기 때문에 this가 필요없다.
2-5. get메소드는 내용을 나타낼때 쓰인다.
package ex02;
public class Main {
public static void main(String[] args) {
// 닉네임(String), 상메(String) , 사진(String), 생일(long), email(String)
kakao a = new kakao("김형종", "ap199");
//1-3.수정하고 싶은 필드는 어케하나 => 기능(메소드) 정의
// setter 메소드 <- set 메소드
kakao a1 = new kakao("이형종", "ap198");
a1.setNick("조형종");
System.out.println(a1.getNick());
//1-4.확인하고 싶은 필드는 어케함?? -> 기능(메소드) 정의
// ex)a1 주소에 저장된 닉네임 출력
// getter메소드 => 객체 필드에 저장된 값을 return <- 매개변수 필요안함 확인만 하면되니
kakao a2 = new kakao("박형종","ap166");
System.out.println(a2.getNick());
}
}
생성자 메소드 :
1. 생성할때 1번만 호출한다. => 리턴타입 명시하지 않고 이름을 클래스의 이름과 동일하게 필요한 필드를 초기화 할때 생성자 메소드를 사용한다.
get/set 예시
package ex04;
public class poketmon {
//필드
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;
}
}
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<poketmon> poke = new ArrayList<poketmon>();
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));
}
} 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());
System.out.println();
check=true;
}
}
if(!check) {
System.out.println("정보가 없습니다.");
}
}else {
System.out.println("종료되었습니다.");
break;
}
}
}
}
'Java' 카테고리의 다른 글
추상클래스 (0) | 2023.09.20 |
---|---|
객체지향 프로그래밍 특징의 상속 (0) | 2023.09.20 |
접근지정자의 종류 (0) | 2023.09.20 |
클래스의 구성 멤버 (0) | 2023.09.20 |
ArrayList 종류 (0) | 2023.09.20 |