본문 바로가기

전체 글

(23)
[JAVA] 5 SOLID programming principles 1. Single Responsibility principle (SRP) : 단일 책임 원칙 객체는 단 한개의 책임(역할)만을 가져한다. 즉, 객체를 변경해야 하는 이유는 단 하나여야 한다는 원칙. 2. Open-Closed principle (OCP) : 개방-폐쇄 원칙 확장(extension)에 대해서는 열려있고(Open) 수정(modification)에 대해서는 닫혀있어야(Closed) 한다는 원칙. - 확장에 대해 열려 있다는 것은 모듈의 동작을 확장할 수 있다는 것이다. 애플리케이션의 요구사항이 변경될 때 이 변경에 맞게 새로운 동작을 추가해 모듈을 확장할 수 있다. - 수정에 대해 닫혀 있다는 것은 모듈의 소스코드나 바이너리 코드를 수정하지 않아도 모듈의 기능을 확장하거나 변경 할 수 있다는 ..
[JAVA] 자바 Project / Package / Class / Methods / Variable 명명 규칙 1. Project (프로젝트) - 대/소문자 구분없이 시작 가능 - 대문자 사용을 권장함 2. Package (패키지) - 소문자로 시작 - 모두 소문자 사용을 권장 - 가급적 한 단어 사용을 권장 - 여러사람과 협업하는 경우 표준 패턴을 따름 - 표준 패턴: com.회사이름(혹은 개인이름).프로젝트명.상위패키지.하위패키지.클래스 3. Class (클래스) - 대문자로 시작 - 명사로 시작 - 두번째 단어부터 소문자도 가능하나 대문자 시작을 권장함 - ex) CastingTest , ValueTest , ThreadTest 등 4. Interface (인터페이스) - 대문자로 시작 - 형용사 - ex) Runnable , Remote 등 5. Methods (메소드) - 소문자로 시작 - 동사로 시작 ..
[JAVA] UpCasting / DownCasting 참조형 데이터의 형변환에서 UpCasting(업캐스팅) 과 DownCasting(다운캐스팅)에 대해 알아보자. 업캐스팅과 다운캐스팅의 경우 서로 연관이 있어야 변환이 가능하다. 예를 들면, - 상속관계인 경우 - 인터페이스로 확장된 경우 이런 관계를 맺고 있는 클래스일 때 업캐스팅과 다운캐스팅이 되는 것이다. 예제를 통해 자세히 살펴보자. 클래스 Person이 있고 클래스 Student가 있다. Student는 Person을 상속받은 하위클래스라고 하자. Person person = new Person( ); Student student = new Student( ); 각각 클래스 타입의 객체를 위와 같이 생성하는 것은 당연히 문제가 없다. Person 타입의 데이터인 person변수는 실제 데이터인 n..
[JAVA] Casting (형변환) 자바에서 데이터형은 크게 기본형(Primitive Type)과 참조형(Reference Type)이 있다. 1. 기본형 (Primitive Type) 기본형은 실제 값을 저장하는 공간이다. 기본형에는 총 8가지가 있다. - 논리형: boolean - 문자형: char - 정수형: byte, short, int, long - 실수형: float, double 1. 참조형 (Reference Type) 참조형은 실제 값이 저장된 곳의 주소를 참조하여 저장하는 것으로, 한마디로 객체의 주소를 가지고 있는 자료형이다. 자바에서 위의 기본형 8가지를 제외한 모든 것이 참조형이다. 자바에서 제공되는 클래스나 사용자가 만든 클래스 모두 자료형으로 사용될 수 있고, 만약 클래스를 자료형으로 사용하여 변수를 만들었을 경..
[JAVA] Access Modifiers (접근제한자) (public, protected, default, private) 오늘은 JAVA의 접근 제한자 (접근 제어자, access modifiers)에 대해 알아보자. 자바의 접근제한자에는 4가지(public, protected, default(none), private)가 있다. · public : 어디서나 접근 가능 · protected : 동일 클래스나 패키지에서 접근 가능 / 상속받은 하위클래스에서 접근 가능 · default (아무것도 적지X) : 동일 클래스나 패키지에서 접근 가능 · private : 동일 클래스에서만 접근 가능 접근제한자 테스트를 위해 IntelliJ에서 다음과 같이 sample을 만들어 보았다. 패키지 2개, 각 패키지 내에 클래스는 2개를 만들었다. (총 클래스 4개) private으로 선언된 변수는 동일 클래스에서만 접근이 가능하기 때문에..