티스토리 뷰

package

관련된 클래스들을 모아서 관리할 수 있도록 한다.
한 곳에서 수백, 수천 개의 클래스를 찾는 수고를 덜어준다.
배포할 때 관련된 소스 코드들을 묶어서 배포하고 재사용할 수 있도록 한다.
각 프로젝트나 소프트웨어 간의 소스 코드 충돌을 방지한다.

■ Package Convention

  • 일반적으로 패키지명은 회사 도메인명을 사용한다
  • 모든 패키지 이름은 소문자
  • 패키지명이 java와 javax로 시작해선 안된다. 이 둘은 JDK에서 독점적으로 사용중
  • 보통 src/main/java/.. , src/test/java/.. 형태

■ import
모든 클래스앞에 패키지명을 사용하는 것은 비효율적.
java.util.Scanner sc = new java.util.Scanner(System.in);
import를 활용해 바로 사용


Class vs Instance

Class : Instance를 생성하기 위한 틀(template). 클래스만으론 상태가 없음.
Instance : Class를 통해 실체화되어 생성됨. 상태를 갖고 메소드를 통해 상태가 변경된다.

이 둘의 구분과, 객체지향의 개념, 3대 원칙을 잘 설명해주는 자료


ㄴ 특히 인상깊었던 표현들


■ Instance field/method
■ Class field/method (static)

public class DateUtils {
    private DateUtils() {}

    public static Date createDate(int year, int month, int date) {
        {...}
    }
}
  • 상태를 가지지 않아, 인스턴스를 생성하지않고 메소드와 필드에 접근하는 경우 static 키워드로 구현.
  • 생성자를 오픈해도 상관없지만, 클래스의 모든 메소드가 static이라면 생성자를 private으로 만들어, 클래스를 생성할 수 없도록 하는것이 개발자 입장에서 더 명확.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함