Joonhoe Kim
Preview Image

(Day 31) 중첩클래스 및 실습

복습 예외처리 예외처리의 고전적 방법 예외를 처리하기 위한 방법은 어떻게 발전해왔나? 호출된 메서드에서, 호출한 메서드에게 정보를 전달하는 방식으로 생각하기 쉬운 것은 return value를 이용하는 것이다. ArrayList 클래스의 indexOf() 메서드가 그러한 방법을 사용한다. 원하는 값이 없는 경우 (예외가 발생한 경우) 인덱스의 값으로...

Preview Image

(Day 28) Object 클래스와 해시(Hash), Thread-Safe

28일차 23/12/21 복습 배운 내용 돌아보기 인터페이스 인터페이스 문법의 용도? 추상클래스에서 더 나아가서 어떤 메서드를 구현해야 할지만 알려주고 싶은 경우. 인터페이스 상속과 구현에 대한 설명? 인터페이스는 인터페이스를 상속할 수 있다. 인터페이스의 다중 상속이 가능한 경우, 불가능한 경우? 메서드 시그너처가 겹치는 메서드가 구현이 안되어 있...

Preview Image

(Day 27) OOP; 인터페이스와 equals()

복습 필드나 메서드에 접근을 제어해야 하는 상황은 언제가 있을까? 대부분의 상황에서 접근을 제어해야 할 것이다. 다른 클래스에서 필드에 임의 접근이 가능하다면 캡슐화가 깨진다. 캡슐화는 추상화를 지원하는 도구이고, 추상화는 현실 세계를 데이터와 연산자로 표현하기 위한 노력이다. 그래야 컴퓨터가 처리할 수 있으니까. Modifer 란? private ...

Preview Image

(Day 26) OOP; 추상클래스, 추상메서드, 인터페이스, 템플릿 메서드 패턴, modifier

추상 클래스의 용도는? 상속을 위해 존재하는, generalization을 위한 클래스이다. 인스턴스화를 할 수없다. (인스턴스 생성이 불가능하다.) 레퍼런스 선언은 가능하다. 다형적 변수를 구현한다. 인터페이스도 레퍼런스 선언은 가능하다. 컴파일러: 레퍼런스가 선언된 클래스를 기준으로 형식만을 검사한다. J...

Preview Image

(Day 25) OOP; 추상클래스와 추상메서드, 게터와 세터, 오버로딩 및 오버라이딩

복습 다형적 변수의 사용방법 컴파일러는 형식상 옳은지 아닌지만 검사한다. 자식 타입은 부모보다 변수나 기능이 더 많기 때문에, 자식 타입의 레퍼런스에 부모 클래스의 인스턴스 주소를 할당해 줄 수 없다. 형변환을 통해서 할당한다 하더라도, 부모 인스턴스에서는 자식 클래스의 변수나 메서드가 없기 때문에 런타임 오류가 발생할 것이다. (실제 그 레퍼런스가...

Preview Image

(Day 24) OOP; 추상클래스, 추상메서드, 오버라이딩

복습 생성자에 대한 설명? 클래스를 객체로 생성할 때(사용할 때) 단 한번 실행되는 메서드가 생성자다. 왜 생성자가 필요한가? 객체가 유효한 상태로 존재하기 위해서는 기본적인 설정이 필요하다. 그 기본적인 설정을 하는 것이 생성자다. 만약 기본적인 설정을 할 게 아무것도 없다면, 아무것도 하지 않고 아무 정보도 받지 않는 생성자인 기본생성자를 쓰면 ...

Preview Image

(Day 23) 싱글톤, 팩토리 메서드, 제네릭

23일(2023-12-14) 전략을 바꿔야겠다. 실습을 따라가는 것만 해도 하루 시간이 부족할 정돈데, 정리를 따로 해서 올리는 건 시간을 최적화해서 사용하지 못하는 걸로 판단된다. 일자별 내가 무엇을 배웠는지, 이것이 나에게 어떤 성장이 되었는지, 내가 어떤 생각을 하고 있는지를 일기처럼 적어야겠다. (다 상세히 서술하진 못해도) 학습시간 필기...