게터(Getter) / 세터(Setter)

losuif·2021년 8월 4일
0

학원 복습 - JAVA

목록 보기
28/32
post-thumbnail

👩‍💻 Getter / Setter

객체 지향 프로그래밍에서 객체의 데이터는 객체 외부에서 직접적으로 접근하는 것을 막는데, 이를 해결하기 위해 메소드를 사용한다.

  • 게터 : 필드의 값을 반환
  • 세터 : 필드를 초기화
  • 커스텀 메소드 : 필드를 사용해 기능 구현, 원하는 결과 산출

⌨️ 게터(Getter)

  • 필드값 반환
  • 접근 제어 수식어 : public
  • 게터명 : get필드명 (필드명의 첫글자는 대문자)
  • 매개변수 없음
  • 내용 : return 필드;

⌨️ 세터(Setter)

  • 필드 초기화
  • 접근 제어 수식어 : (거의) public
  • 반환자료형 : void (반환값 X)
  • 세터명 : set필드명 (필드명의 첫글자는 대문자)
  • 매개변수 : 필드와 동일
  • 내용 : 생성자와 동일 (this.필드명 = 매개변수명;)


⌨️ ex)


  • Main Class
package pack_GetSet;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("이름, 번호, 개수 순서대로 입력 : ");
		String name = scanner.next();
		double num1 = scanner.nextDouble();
		int cnt = scanner.nextInt();
		
		scanner.close();
		
		FieldData fieldData = new FieldData();
		fieldData.setName(name);
//		fieldData.setName(""); //의도적으로 공백 전달
		fieldData.setNum1(num1);
		fieldData.setCnt(cnt);
		
		System.out.println("name : " + fieldData.getName());
		System.out.println("num1 : " + fieldData.getNum1());
		System.out.println("cnt : " + fieldData.getCnt());

	}

}

  • Custom Class
package pack_GetSet;

public class FieldData {

	private String name;
	private double num1;
	private int cnt;
	
	//초기화 세터 / 반환 게터
	//alt shift s r
	
	public void setName(String name) {
		
		if (name.equals("")) {
			System.out.println("공백 불가능");
			System.exit(1); //문제 있을 때 1
		} else {
			this.name = name;
		}
	}
	
	public void setNum1(double num1) {
		this.num1 = num1;
	}
	
	public void setCnt(int cnt) {
		this.cnt = cnt;
	}
	
	
	public String getName() {
		return name;
	}
	public double getNum1() {
		return num1;
	}
	public int getCnt() {
		return cnt;
	}
   }



  • 메인 클래스의 fieldData.setName(""); 실행시 결과

0개의 댓글