프로젝트명 : F7_SetterGetter
패키지명 : setget
클래스명 : SetterGetter
setter는 private 변수 값을 변경하는 메서드입니다.
getter는 private 변수 값을 출력하는 메서드입니다.
예를 들어
private String brand = "스타벅스";
String aa = "아이스아메리카노";
int price = 4300;
예를 들어 스타벅스라는 카페가 있습니다.
메뉴와 이름은 변경이 가능하지만
스타벅스라는 이름은 변경하지 못하게
private로 변경했습니다.
단순한 예를 들면
특별 매장은 가격이 다를 수 있고.
해외 매장은 메뉴명이 영어인지, 한국어인지 다를 수 있습니다.
그런데! main에서는 오류가 발생합니다.
private로 만든 변수는 출력이 불가능합니다!
수정도 안되고 뭐 점 . 찍어서 할 수 있는 게 없네요!
Class에서 print라는 메서드를 활용하면
private로 만든 브랜드를 출력할 수 있습니다.
메서드는 출력이 가능하다?
메서드로 값 변경이 가능하지 않을까요?
set을 입력하시고 자동완성을 사용해보시면
setBrand가 있습니다.
파라미터로는 String을 받으라고 하네요
set과 get을 만들었습니다.
둘 다 자동완성을 통해 만들었고!
getBrand는 return을 통해 brand의 값을 보내줍니다.
setBrand는 파라미터로 String을 받고,
brand의 값을 String으로 받은 name으로 변경해줍니다.
main에서 브랜드를 출력하기 위해서는
sg.getBrand()를 출력하시면 됩니다.
sg.getBrand() = return brand;
이니 sg.getBrand() 자체가 brand입니다.
예를 들어 한국에서는 간판을 한글만 사용 가능하니
변경하라!라고 한다면
sg.strBrand("별다방");
String타입의 값으로 별다방을 주었으니
Setter메서드 즉, setBrand메서드에서
brand = 별다방
이 됩니다.
다시 출력해보면 별다방으로 변경이 되었습니다.
조금만 더 보겠습니다
패키지명 : setget2
클래스명 : Person, PersonMain
클래스 두 개 만들어 주겠습니다.
private String name = "";
변수 하나 생성해주겠습니다.
set + 자동완성을 이용하여 name의 settet를 만들어보겠습니다.
name이 String이니 파라미터도 String이 되겠습니다.
여기서 this가 나옵니다.
파라미터로 받은 name
private로 만들어 둔 name
이 두 가지를 비교하기 위해서
name = name
어떤 게 어떤 내용인지 인식하기가 어렵습니다.
this.name = 클래스에서 생성된 name
name = 파라미터로 받은 name
this는 클래스 자신을 뜻합니다.
클래스 자신이 가지고 있는 name은 this.를 이용하여 표시합니다.
settet와 getter를 쉽게 만들어 봅시다.
화면에서 우클릭해주시고
Source - Generate Getter and Setters
이동해주겠습니다.
창이 하나 나오는데
private로 만든 변수가 모두 나옵니다.
현재는 name하나가 있네요
모든 변수에 setter,getter가 필요하다면 Select All을 클릭하고 Generate
getter, setter 둘 중에 한 가지만 필요하다면
Select Getters , Select Setters - Generate를 통해
쉽게 만들 수 있습니다.
현재 상황으로는 private변수가 하나뿐이니
자동완성이 더 빠를 수 있겠네요.
Main에서 setters,getters를 사용해보겠습니다.
setName("임세주");
에서
임세주는 name
private name은 this.name
위의 그림을 보시는 게 더 빠르겠네요!
패키지명 : setget3_Arr
클래스명 : ArrayClass , ArrayMain
클래스 두 개 만들어주겠습니다.
이제는 배열입니다!
private String name = "";
private int age = 0;
private변수를 두 개 만들고 setters, getters를 만들어주겠습니다.
자동으로 만들어진 것을 확인해주시고!
메인에서 클래스를 호출해 보겠습니다.
저는 클래스를 호출할 건데!
배열 형태로 할 것입니다.
ArrayClass[] ac = new ArrayClass[5];
클래스 호출하는데 방이 다섯 개를 만들었습니다.
모든 방을 new를 통하여 메모리 공간을 잡아줍니다.
ac[0].setName("임세향");
ac[0].setAge(20);
ac[1].setName("임세주");
ac[1].setAge(60);
ac[2].setName("임세세");
ac[2].setAge(35);
이렇게 방 세 개만 setter를 이용하여 값을 넣어줬습니다.
for문을 이용하여 출력하겠습니다.
값이 없는 3,4번 방은 제외하고 출력이 됩니다.
이렇게 배열을 사용할 수 있다!
는 것을 인지하셔야 합니다.
지금까지 배운 내용을 모두 연동하여 사용하실 수 있다면
실력이 빠르게 성장할 것입니다.
'IT > 1) 자바' 카테고리의 다른 글
자바독학) 오버로딩, 생성자 (클래스 생성자, 메서드 오버로딩) (0) | 2019.10.24 |
---|---|
자바독학) 자판기, 그래프 만들기(Setters,Getters) (0) | 2019.10.23 |
자바독학) 자바 클래스 문제, 업다운게임, 워드게임 (return,파라미터,메서드) (0) | 2019.10.22 |
자바독학) Class, 메서드 , Class호출(메서드호출), 파라미터, 반환형 , return (0) | 2019.10.21 |
자바독학) String Class. (String클래스, String 객체) (0) | 2019.10.14 |
댓글