package ch03_getter_setter;

/*
 * getter 메서드
 * → class 외부에서 생성된 객체의 멤버필드를 사용하는 용도의 메서드.
 * 
 * setter 메서드
 * → class 외부에서 생성된 객체의 멤버필드를 설정 or 수정하는 용도의 메서드.
 * 
 * 멤버 필드 = private
 * 메서드 = public 
 */

class Member {
	private String id;
	private String name;
	private int age;
	
	public String getId() { return id; }
	public void setId(String _id) { id = _id; }
	
	public String getName() { return name; }
	public void setName(String _name) {
		if(_name.length() <= 10) {
			name = _name;
		} else {
			System.out.println("이름은 10글자까지만 가능합니다.");
		}
	}
	
	public int getage() { return age; }
	public void setage(int _age) { 
		if(_age >= 0 && _age <= 130) {
			age = _age;
		} else {
			System.out.println("나이는 0~130 사이만 가능합니다.");
		}
	}
	
	public void info() {
		System.out.println("--- 회원정보 ---");
		System.out.println("ID    : " + id);
		System.out.println("이름  : " + name);
		System.out.println("나이  : " + age + "세");
	}

	
}

public class ExGetterSetter {

	public static void main(String[] args) {
		
		Member manA = new Member();
//		manA.id = "001";
//		manA.name = "manA";
//		manA.age = 20;
		
		manA.setId("001");
		//manA.setName("afdsfsfsdffs");
		manA.setName("manA");
		//manA.setage(-2);
		manA.setage(24);
		manA.info();
		
		
		System.out.println();
		
		System.out.println("회원 ID   : " + manA.getId());
		System.out.println("회원 이름 : " + manA.getName());
		System.out.println("회원 나이 : " + manA.getage() + "세");
		
		
	}

}

package ch03_getter_setter;

/*
 * Book class를 정의하고, BookManager class에서 테스트하세요.
 * → 책제목, 지은이, 진열위치, 가격의 관리가 가능합니다.
 * → 멤버필드 값을 설정, 사용하는 getter, setter 메서드를 정의하세요.
 *   > 지은이 : 2~10 글자 가능.
 *     진열위치 : A, B, C만 가능.
 *     가격   : +(plus)만 가능.
 */

class Book {
	private String title;
	private String author;
	private char area;
	private int price;
	
	public String gettitle() { return title; }
	public void settitle(String _title) { title =_title; }
	
	public String getauthor() { return author; }
	public void setauthor(String _person) {
		if(_person.length() < 11 && _person.length() > 1) {
			author = _person;
		} else {
			System.out.println("지은이는 2~10글자만 가능합니다.");
		}
	}
	
	public char getarea() { return area; }
	public void setarea( char _where ) {
		if(_where == 'A' | _where == 'B' | area == 'C') {
			area = _where;
		} else {
			System.out.println("진열위치는 A, B, C만 가능합니다.");
		}
	}
	
	public int getprice() { return price; }
	public void setprice(int _price) {
		if(_price >= 0 ) {
			price = _price;
		} else {
			System.out.println("가격은 양수만 가능합니다.");
		}
	}
	
	public void info() {
		System.out.println("--- 책 정보 ---");
		System.out.println("제목     : " + title);
		System.out.println("지은이   : " + author);
		System.out.println("진열위치 : " + area);
		System.out.println("가격     : " + price + "원");
	}
}
package ch03_getter_setter;

public class BookManager {

	public static void main(String[] args) {
		Book bk = new Book();
		bk.settitle("개미");
		bk.setauthor("홍길동");
		bk.setauthor("fdsfdsfdsdfsfds");
		bk.setarea('A');
		bk.setarea('D');
		bk.setprice(28000);
		bk.setprice(-12000);
		bk.info();
		System.out.println();
		
		System.out.println("책 제목     : " + bk.gettitle());
		System.out.println("책 지은이   : " + bk.getauthor());
		System.out.println("책 진열위치 : " + bk.getarea());
		System.out.println("책 가격     : " + bk.getprice() + "원");
	}

}