본문 바로가기

분류 전체보기118

Object Class 자바의 Object 클래스의 equals()와 hashCode() 메서드는 매우 중요한 메서드로, 객체의 동일성과 동등성을 다룰 때 주로 사용됩니다. equals() 메서드 목적: 객체의 동등성(equality)을 확인합니다. Object 클래스에서 기본으로 제공되는 equals() 메서드는 객체의 동일성(identity)을 검사합니다. 즉, 두 객체가 메모리 상에서 같은 주소를 가리키는지 확인합니다. 일반적으로, 우리는 객체의 속성 값을 기반으로 두 객체의 동등성을 확인하고자 할 때 equals() 메서드를 재정의(override) 합니다. @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null.. 2023. 12. 11.
예외 자바에서 예외는 크게 두가지 유형으로 구분 됩니다. CheckedException, UnCheckedException 입니다. 이 두가지 차이점은 CheckedException 의 경우 컴파일 할 때 예외에 대한 처리를 강제하고, UnCheckedException은 예외 처리를 강제하지 않습니다. RuntimeException 을 제외한 모든 예외는 CheckedException 입니다. 1. CheckedExcpetion ( Exception ) CheckedException은 주로 외부 시스템과의 상호작용 중 발생할 수 있는 예외 상황에 사용됩니다. 예를 들어, 파일 입출력, 데이터베이스 연결 등에서 발생할 수 있는 예외 들입니다. IOException, SQLException 아래는 CheckedE.. 2023. 12. 11.
Enum 많이들 enum 이 type을 정의 하는 기능으로 알고 계실텐데요. enum은 강력한 다형성을 제공 합니다. enum에서 다형성을 사용하면 각 열거형 상수마다 동작을 정의할 수 있습니다. 먼저 enum 을 타입 형태로만 사용했을 경우입니다. if 문이 여러개 작성되며 소스가 어려워 집니다. public enum CalculateType2 { ADD, MULTIPLY, DIVIDE, } public class Client2 { public int someMethod(CalculateCommand2 calculateCommand) { if ( calculateCommand.getCalculateType() == CalculateType2.ADD ) { return calculateCommand.getNum1.. 2023. 12. 11.
캡슐화 지난 시간에 이어 아래 코드를 확인해 보도록 하겠습니다. 아래 코드에서 CalculateCommnad는 CalculateType, num1, num2 를 가지고 있습니다. 만약 해당 필드가 삭제가 된다면 getter 메서드도 함께 제거 되어야 하며 Client 코드 및 CalculateCommand를 사용 하는 기타 코드들도 변경이 이루어 져야 합니다. 이는 결합도가 높은 코드라 볼 수 있으며 필드 따로 계산로직 따로 사용하기 때문에 응집도가 낮다고할 수 있습니다. CalculateCommand를 너무 잘 아는 Clinet 객체 지향적인 코드는 결합도는 낮고 응집도는 높은 코드입니다. public class Client { public int someMethod(CalculateCommand calcul.. 2023. 12. 11.