Today I Learned
(24.04.30)[3주차] 과제 이슈 정리
생각보다 과제가 은근히 계속 거리는게 있어서 무뎌지고 있다.
사실상 1시간에서 2시간이면 끝내야하는 내용인데,
괜히 뭔가 더 살펴본다고 더 공부하고 하느라 하루종을 다 쓰는듯 싶다.
과제 이슈 정리
enum을 실제로 만들고 다시 확인하기
더보기
package calculator;
public enum OperatorType {
/*열거형 멤버*/
ADD('+'),
SUBSTRACT('-'),
MULTIPLY('*'),
DIVIDE('/'),
MODE('%');
/*생성자의 저장되는 필드 변수*/
private final char symbol;
/*생성자*/
private OperatorType(char symbol) {
this.symbol = symbol;
}
/*해당 symbol을 얻을 수 있는 Getter*/
public char getSymbol() {
return symbol;
}
}
- enum을 클래스 내에서 생성하는 것만 집중적으로 알고 있었기 때문에 enum 클래스에 대해서 정리하면서 과제 해결
- 이미 알고 있듯이 열거형의 모든 멤버들은 private
- enum클래스 안에는 생성자와 메서드getter 등을 추가할 수 있음
- 하지만, 다른 클래스에서 enum 클래스를 사용하고자 할 때, 새롭게 객체 생성 불가! -> OperatorType operatorType = OperatorType.ADD; 같이 직접 상수를 불러와야함
- **매우 중요** enum의 .values() 메서드
- 알고 있었지만, 막상 사용하면 까먹어버리는 메서드
- 모든 상수를 "배열" 형태로 반환시킴 -> 따라서 향상된 for 문 또는 배열로 지정하여 사용 가능
Generics 숫자 클래스 범위
더보기
public class ArithmeticCalculator <T extends Double> extends Calculator { // 주의 부분
/*Calculatable 인터페이스 구현 사칙연산을 활용*/
public double calculate(T number1, T number2, char operator) throws DivideException {
...
}
}
- Double은 래퍼클래스로 사용가능하지만, 요구사항에 있어서 이지만 모든 숫자의 조상 클래스인 Number을 사용
- Number 타입을 활용하는 연습을 할 수 있도록
- Double로 한정시켜놓을 경우 안에 메서드가 바뀌게 되면 다른 이슈가 발생할 수 있기 때문에 계속 IDE 에서 계속 주의를 주었음
- <T extends Number> 을 활용할 수 있도록
가급적 까먹고 가볍게 넘어갈 수 있는 부분이 실저에 코드를 짜면서 많이 잊어먹는 느낌이라
계속 Notion과 Java의 정석을 보면서 과제를 할 수 있도록 해야할 것.!
'Today I Learned' 카테고리의 다른 글
(24.05.02)[3주차] Array의 스트림과 Optional을 활용 & 조건절과 예외 (0) | 2024.05.02 |
---|---|
(24.05.01)[3주차] CODE KATA와 과제에서 스트림과 람다식(메서드참조)정리 (1) | 2024.05.01 |
(24.04.29)[3주차] CODE KATA 이슈 정리(String에 char붙이기), 과제 이슈 정리(불필요 초기화 중복) (0) | 2024.04.29 |
(24.04.27)[2주차] WIL (0) | 2024.04.27 |
(24.04.26)[2주차] 알고리즘 심화 세션 정리, 과제 이슈 정리 (1) | 2024.04.26 |