본문 바로가기
java

getter&setter

by wjdtmdgjs 2024. 7. 29.
private ArrayList<Integer> array = new ArrayList<>();

// private을 써서 외부에서 접근못하게한다

public ArrayList<Integer> getArray(){ // getter 설정
    return array;
}
public void setArray(ArrayList<Integer> array){ //setter 설정
    this.array=array;
}


// 외부에서 객체의 private 한 필드를 읽을 때 Getter 메서드를 사용

// 외부에서 객체의 private 한 필드를 저장/수정할  때 Setter 메서드를 사용
 

----------------------------------------------------------------------------------------------------------------------------------------------------

 

result = cal.calculate(num1, num2, operator);

cal.getArray().add(result); /* getter로 받아주기. setter로 받을 수 있으나 지금 배열 전체를 바꾸는것이 아니라
하나를 추가하거나 제거하는 것이기 때문에 getter 로 받아서 하는것. setter로 받을 경우 4번째 값을 넣어줄때 앞에 3개의
값들을 모두 넣어 새로운 배열을 만들어야 되기에 이경우 getter로 사용한다.*/

 

@@여기서 의문!

result값을 array에 추가 하는 것이면 위의 설명처럼 외부에서 객체의 privat 한 필드를 저장/수정 하는것이 아닌가.??

왜 set을 안쓰고 get으로 해야되는것인가.???

 

@@답

 setter로 받을 수 있으나 지금 배열 전체를 바꾸는것이 아니라 하나를 추가하거나 제거하는 것이기 때문에 getter 로 받아서 하는것. setter로 받을 경우 4번째 값을 넣어줄때 앞에 3개의 값들을 모두 넣어 새로운 배열을 만들어야 되기에 이경우 getter로 사용한다.

 

set으로 받으려면

ArrayList array2 = new ArrayList<>(); //모든 결과값이 포합되는 새로운 배열을 만들어서 set해줘야된다.

cal.setArray(array2);

 

이번에 하는 이 코딩에서는 배열로 하나씩 추가 or 제거하는 기능만 필요하기에 get으로 받는 것이 좋다.

 

@@@@사소한

char operator = sc.next().charAt(0); // charAt(0) : 입력받는값을 char로 변환해준다.
//원래 scanner는 String으로 받아줘야된다.
// charAt('인덱스값')

'java' 카테고리의 다른 글

다형성  (0) 2024.08.01
Java  (0) 2024.07.31
객체지향  (0) 2024.07.26
list, map  (1) 2024.07.25
연산자, 조건문 (Sql 조금)  (1) 2024.07.24