본문 바로가기

Java

get/set

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