JAVA/코드

2022_10_11 연습 07 day07.modi.encap.good (Getter & Setter를 사용하는 방법)

0304호 2022. 10. 11.
package day07.encap.good;

public class MainClass {

	public static void main(String[] args) {
		
		MyBirth me = new MyBirth();
		
		
		me.setYear(2022);
		int year = me.getYear();
		System.out.println("년도 : " + year);
		
		me.setMonth(1);
		int month = me.getMonth();
		System.out.println("월 : " + month);
		
		me.setDay(3);
		int day = me.getDay();
		System.out.println(day);
		
		me.setSsn("940616-1111111");
		String ssn = me.getSsn();
		System.out.println(ssn);
		
		me.info();
		
	}
}
package day07.encap.good;

public class Member {

	//회원정보 저장
	
	private String id;
	private String pw;
	private String name;
	private String email;
	private String addr;
	private int age;

	//기본생성자 ctrl + space + enter
	public Member() {

	}
	
	
	public Member(String id, String pw, String name, String email, String addr, int age) {
		super();
		this.id = id;
		this.pw = pw;
		this.name = name;
		this.email = email;
		this.addr = addr;
		this.age = age;
	}
	//생성자도 자동완성이 있다.
	
	
	//getter, setter => 12개
	//자동완성제공
	// alt shift s
	// source탭 -> Generate Getter Setter 
	
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	
	public String getPw() {
		return pw;
	}
	public void setPw(String pw) {
		this.pw = pw;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	
	public String getAddr() {
		return addr;
	}
	public void setAddr(String addr) {
		this.addr = addr;
	}
	
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
	
	
}​
package day07.encap.good;

public class MyBirth {
	private int year;
	private int month;
	private int day;
	private String ssn;
	
	/*
	 * 은닉된 변수에 접근할 때 클래스 설계자가 만들어 놓은
	 * getter & setter 메서드를 사용합니다.
	 * 
	 * ------------국룰------------------
	 * 메서드명이
	 * get시작(값을 얻는다)
	 * set시작(값을 저장한다)
	 * 
	 *  Setter메서드
	 * 1. 값을 저장하는 메서드
	 * 2. public으로 선언하고 set + 멤버변수명으로 저장
	 * 3. ex) public void setYear(int year){ }
	 * 
	 */
	
	public void setYear(int year) {
		if(year>2022 || year<1900) {
			System.out.println("년도는 1900~2022년까지 입니다.");
		}else {
			this.year = year;
		}
	}
	
	/*
	 * Getter메서드
	 * 1. 값을 조회하는 메서드
	 * 2. public으로 선언하고 get + 멤버변수 명으로 지정
	 * 3. ex) public int getYear(){ }
	 * 
	 */
	
	public int getYear() {
		return year; 
	}
	
	/*
	 * month, day, ssn에 대한 getter setter생성
	 * month = 1~12월
	 * day = 1~31일
	 * ssn은 -제거하고 13자리까지
	 */
	
	public void setMonth(int month) {
		if(month<0 || month>12) {
			System.out.println("월은 1~12월 까지 입니다.");
		}else {
			this.month = month;
		}
	}
	public int getMonth() {
		return month;
	}

	
	public void setDay(int day) {
		if(day<0 || day>31) {
			System.out.println("1~31일 사이가 아닙니다.");
		}else {
			this.day = day;
		}
	}
	public int getDay() {
		return day;
	}
	
	
	public void setSsn( String ssn) {
		if(ssn.replaceAll("[^0-9]", "").length()!=13) {
			System.out.println("13자리가 아닙니다.");
		}else {
			this.ssn = ssn;
		}
	}
	public String getSsn() {
		return ssn;
	}
	
	
	public void info() {
		System.out.println(year +  " 년도, "+ month + "월, " + day  + "일 " );
		System.out.println("주민번호 : " + ssn);
	}
	
}

댓글