abstract: 4개의 글
해당 내용은 이펙티브 자바 3판 (조슈아 블로크 지음, 이복연 옮김)를 읽고 나같은 초심자의 눈으로 이해한 내용을 정리해보았다. 책에 있는 내용을 기반으로 썼지만, 책에 없는 내용도 조금 적었다. (guava Immutable, 템플릿메소드, 중첩클래스 등) 또한 이번 정리부터는 조금 더 많이 요약해서 기술할 것이며, 코드예제도 많이 뺐다. 참고로 책의 코드는 https://github.com/WegraLee/effective-java-3e-source-code 에서 볼 수 있다. 4장의 아이템 목록 클래스와 멤버의 접근 권한을 최소화하라 public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라 변경 가능성을 최소화하라 상속보다는 컴포지션을 사용하라 상속을 고려해 설계하고 문서화하라. ..
abstract 1. 추상화란추상[抽象]: 낱낱의 구체적 표상이나 개념에서 공통된 성질을 뽑아 이를 일반적인 개념으로 파악하는 정신 작용즉. 프로그래밍에서는 추상화는 기존의 클래스의 공통부분을 뽑아내서 조상클래스를 만드는 것이다.추상화를 구체화와 반대되는 의미로 이해하면 보다 쉽게 이해할 수 있다. 상속계층도를 따라 내려갈수록 클래스는 점점 기능이 추가되어 구체와의 정도가 심해지며, 상속 계층도를 따라 올라갈수록 클래스는 추상화의 정도가 심해진다고 할 수 있다.즉, 상속계층도를 따라 갈수록 세분화되며, 올라갈수록 공통요소만 남게 된다.추상화: 클래스간의 공통점을 찾아내서 공통의 조상을 만드는 작업구체화: 상속을 통해 클래스를 구현, 확장하는 작업 2. 추상클래스클래스를 설계도에 비유한다면 추상클래스는 미..
상속(extends), 추상 클래스(abstract), 인터페이스(implement) 객체지향을 조금이라도 공부한 사람들은 상속, 추상 클래스, 인터페이스에 대해 계속적으로 들어봤을 것이다. 이 개념들이 객체 지향 프로그래밍을 하는데 중요한 개념이기 때문이다.이것들은 어플리케이션을 설계하는데 공통된 부분을 묶어 정의해주고, 구조화 해주며, 객체로 활용할 수 있도록 도와준다.이것들에 대한 개념 및 예제들은 많이 찾아볼 수 있으므로, 여기서는 간단히 정리하겠다. 1. 상속 (extends) 상속은 기존의 클래스로 부터 새로운 클래스를 유도하는 과정이다. 쉽게 말해서 부모 클래스를 extends로 상속받아 자식 클래스에서 내 것처럼 사용할 수 있는 것이다. 시스템을 설계하다보면, 공통된 부분으로 인하여 중복되..
final, static, abstract, synchronized 변수나 함수 선언시, 해당 변수나 함수 활용 방법에 대한 modifier를 설정할 수 있다. modifier 구분설명 final 변수 선언 변수를 상수로 이용하는 경우 사용한다. 함수 선언 오버라이딩이 불가능한 메쏘드를 정의할 때 이용한다.static 변수 선언 클래스에 소속된 클래스 변수를 의미한다. 클래스 생성시 만들어진다. 함수 선언 abstract함수 선언 추상 메쏘드를 의미한다. 하위 클래스에 의해 구현된다. synchronized함수 선언 thread의 동기화를 의한 메쏘드이다. final 은 변수를 선언할 때와 함수를 선언할 때 쓰임새가 다르다. - 상수 : final (변수 선언시) final을 사용하여 변수를 선언하면 할..