(Effective Java) 규칙16. public 클래스에서는 public필드가 아닌 접근자 메서드를 사용하라 public 필드의 문제 인스턴스 필드들을 모아놓는 일 외에는 아무 목적도 없는 퇴보한 클래스를 작성하려 할 때가 있다. class Point { public double x; public double y; } 이런 클래스는 데이터필드에 직접 접근할 수 있으니 캡슐화의 이점을 제공하지 못함 API를 수정하지 않고는 내부 표현을 바꿀 수 없고, 불변식을 보장할 수 없음 외부에서 필드에 접근할 때 부수 작업을 수행할 수도 없음 접근자 메서드 public 클래스에서라면 아래의 방식이 확실히 맞다. class Point { private double x; private double y; public..
(Effective Java) 규칙7. 다 쓴 객체 참조를 해제하라 C, C++ 처럼 손수 메모리 관리를 해야 하는 언어를 쓰다 쓰레기 수집가 포함된 언어를 사용하기 시작하면 프로그래밍이 아주 쉬워진다. 볼 일 없는 객체는 자동적으로 반환되기 때문에 메모리 누수가 발생하는 Stack 클래스 //"메모리 누수(memory leak)가" 어디서 생기는지 보이는가? public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() { elements = new Object[DEFAULT_INITIAL_CAPACITY]; } p..
(Effective Java) 규칙22. 인터페이스는 타입을 정의하는 용도로만 사용하라 인터페이스의 목적 인터페이스를 구현하는 클래스를 만들게 되면, 그 인터페이스는 해당 클래스의 객체를 참조할 수 있는 자료형(type) 역할을 하게 된다. 해당 클래스의 객체로 어떤 일을 할 수 있는지 클라이언트에게 알리는 행위임 인터페이스의 목적은 여기까지이며 다른 목적으로 인터페이스를 정의 하고 사용하는 것은 적절치 못함 인터페이스를 잘못 사용하는 예 상수 인터페이스(constant interface) 형태 메서드가 없고, static final 필드만 있는 형태로 모든 필드는 상수 정의임 대체로 상수 이름 앞에 클래스 이름을 붙이는 번거로움을 피하기 위해서임 //상수 인터페이스 안티패턴 - 사용하지 말 것! pub..
(Effective Java) 규칙20. 추상 클래스 보다는 인터페이스를 우선하라 추상 클래스, 인터페이스 자바 언어에는 여러 가지 구현을 허용하는 자료형을 만드는 방법이 두가지 포함되어 있음. 인터페이스, 추상클래스(abstract class) 이 두 방법의 분명한 차이는 추상 클래스는 구현된 클래스를 포함할 수 있지만 인터페이스는 아니라는 것임. 자바 1.8 부터는 'default' 메서드를 통해 인터페이스에도 구현을 포함시킬 수 있음 좀 더 중요한 차이는 추상 클래스를 자료형으로 사용하기 위해서는 반드시 계승이 필요하다는 것이다. 인터페이스는 포함된 모든 메서드를 정의하고 인터페이스가 규정하는 일반 규약을 지키기만 하면됨 자바는 다중 상속(multiple inheritance)를 허용하지 않기 때문..
(Effective Java) 규칙18. 상속보다는 컴포지션을 사용하라 계승(Inheritance) 계승(Inheritance)은 재사용을 돕는 강력한 도구지만, 항상 최선이라고 할 순 없다. 계승을 적절히 사용하지 못한 소프트웨어는 깨지기 쉬움. 계승은 상위 클래스와 하위 클래스 구현을 같은 프로그래머가 통제하는 단일 패키지 안에 있을 경우 안전하다. 일반 객체 생성 클래스(concrete class)라면, 해당 클래스가 속한 패키지 밖에서 계승을 시도하는 것은 위험하다. 이 책에서는 계승(Inheritance)이라는 용어를 구현 계승 (implementation Inheritance)의 의미로 사용 즉 한 클래스가 다른 클래스를 'extends' 한다는 소리, 인터페이스 끼리의 계승은 해당하지 않음 ..
들어가며 JavaFX의 Tray Icon에 메뉴를 추가하는 방법에 대해서 알아보도록 하겠습니다. Tray Menu Tray Icon에 추가하는 메뉴는 아래와 같은 형태로 Tray Icon에 오른쪽 마우스 클릭을 했을 때 전시되는 메뉴를 말합니다. * Tray Icon 추가 방법은 이 글을 참고 해주세요. [JavaFx] Tray Icon 전시 방법 이번 시간에는 JavaFX에서 Tray Icon을 전시하는 방법에 대해서 알아보도록 하겠습니다. Tray Icon이란? Tray Icon은 작업 표시줄에 표시되는 아이콘입니다. 아래와 같이 말이죠. JavaFX Application을 개발하면.. jinseongsoft.tistory.com Tray Menu 구현 코드 구성은 아래와 같습니다. TrayMenu...
- Total
- Today
- Yesterday
- 일본 자전거 여행
- JavaFX
- 배낭 여행
- JavaFX 테이블뷰
- Java UI
- intelij
- 자바
- 일본여행
- 이펙티브 자바
- JavaFX Window Close
- 스프링부트
- springboot
- 일본 배낭여행
- effectivejava
- 방통대 과제물
- git
- windows
- JavaFX Table View
- 배낭여행
- 자전거
- TableView
- 자전거 여행
- 텐트
- java
- JavaFX 종료
- 인텔리제이
- effective java
- 일본 여행
- 이펙티브자바
- 이펙티브
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |