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('인덱스값')