loop-study
개발 공부할래?
loop-study
전체 방문자
오늘
어제
  • 분류 전체보기 (186)
    • 목표 및 회고 (25)
    • 세미나 & 워크샵 (1)
    • 교육 및 인강 (67)
      • TDD, Clean Code with Java (5)
      • ATDD, 클린 코드 with Spring (6)
      • DDD 세레나데 (3)
      • 인프라 공방 (6)
      • 이규원의 현실 세상의 TDD (19)
      • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (18)
      • 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 (0)
      • 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한 (8)
      • 코딩으로 학습하는 GoF의 디자인 패턴 (1)
      • 스프링 시큐리티 완전정복 6.x (1)
    • 서적 (62)
      • 객체지향의 사실과 오해 (1)
      • 객체지향과 디자인패턴 (7)
      • 만들면서 배우는 클린 아키텍처 (3)
      • 테스트 주도 개발로 배우는 객체 지향 설계와 실천 (1)
      • 오브젝트: 코드로 이해하는 객체지향 설계 (17)
      • 리팩토링 : 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기 (0)
      • 토비의 스프링 (3)
      • 엔터프라이즈 애플리케이션 아키텍처 패턴 (9)
      • 개발자의 글쓰기 (1)
      • 소프트웨어 장인 (17)
      • Real MySQL 8.0 (2)
      • JVM 밑바닥까지 파헤치기 (0)
    • 개발 & 방법론 (29)
      • Java (13)
      • TDD (5)
      • ATDD (3)
      • DDD (6)
      • 인프라 (2)
      • SQL (0)
    • 개인이야기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 백엔드 로드맵

인기 글

태그

  • 소프트웨어 장인
  • 엔터프라이즈 애플리케이션 아키텍처 패턴
  • 객체지향
  • 넥스트스탭
  • 모든 개발자를 위한 HTTP 웹 기본 지식
  • Patterns of Enterprise Application Architecture
  • 오브젝트
  • 테스트 주도 개발
  • JUnit
  • 조영호
  • 스프링
  • DDD 세레나데
  • 추상화
  • 인프라공방
  • study
  • ATDD
  • 장인정신
  • fastcampus
  • Test Driven Development
  • 자바
  • TDD
  • 이규원
  • 스터디
  • 현실세상의 TDD
  • java
  • nextstep
  • 백기선
  • 인프런
  • 김영한
  • 마틴 파울러

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
loop-study

개발 공부할래?

7주차 : 패키지
개발 & 방법론/Java

7주차 : 패키지

2021. 1. 1. 17:14

github.com/whiteship/live-study/issues/7

 

7주차 과제: 패키지 · Issue #7 · whiteship/live-study

목표 자바의 패키지에 대해 학습하세요. 학습할 것 (필수) package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 마감일시 2021년 1월 2일 토요일 오후 1시까지.

github.com

학습할 것 (필수)

  • package 키워드
  • import 키워드
  • 접근지시자
  • 클래스패스
    • CLASSPATH 환경변수
    • -classpath 옵션

 

 

package

패키지란 클래스를 체계적으로 관리하기 위한 폴더 저장 방식이자,

패키지명과 클래스명을 합쳐(FQCN:full qualified class name) 클래스를 유일하게 만들어주는 '식별자 역할'이다.

 

패키지는 폴더 방식을 따른다

패키지 선언 규칙

  1. 숫자로 시작이 안된다
  2. _, & 를 제외한 특수문자 사용해서는 안된다
  3. 모두 소문자로 사용하는게 관례이다
  4. 여러 회사가 같이 프로젝트가 진행되면 회사도메인과 프로젝트명으로 구분한다 (com.kakao.projectname,  com.naver.projectname)
  5. 자바 예약어를 사용해서는 안된다
  6. java로 시작하는 패키지는 자바표준API 에서만 사용하므로 사용해서는 안된다.

패키지 사용방법은 간단하다

생성 후 해당 패키지 내에서 클래스를 만들면 끝난다

인텔리제이 패키지 생성하기
생성된 패키지내에 클래스 생성하기
맨 위에 자동으로 패키지경로가 적힌다

 

 

import

자바에선 같은 패키지내에선 다른 클래스를 아무 조건없이 사용할 수 있지만

같은 패키지에 없는 클래스라면 에러가 발생한다

같은 패키지내에선 조건없이 사용가능
다른 패키지에 있는 클래스 사용 시 에러 발생

 

다른 패키지에 있는 클래스를 사용하는 방법엔 두 가지가 존재한다

1. FQCN 를 이용하여 클래스 사용

2. import 로 클래스 사용

 

FQCN 방법은 패키지명과 클래스명을 다 적는 방식으로 다음과 같다

FQCN 방법

해당 클래스가 위치한 패키지경로와 클래스명을 모두 적어서 사용하는 방식으로 코드가 복잡해져 비권장하는 방식이다.

 

다음은 import 를 이용한 방법이다

import 방식으로 사용이 단순해진다 

이전 방식은 매번 FQCN 을 써야한다는 단점이 있지만

import 방식은 패키지와 클래스 사이에 import 키워드를 선언해주고 FQCN 을 한번만 써주면 간단하게 끝난다.

import 엔 * 키워드를 사용할 수 있는데

해당 패키지내의 모든 클래스를 뜻한다

 

* 키워드는 해당 패키지의 모든 클래스를 뜻함.

 

접근제한자

외부클래스에서 접근할 수 있는 멤버와 접근할 수 없는 멤버로 구분해주는 게 접근제한자로 다음과 같이 존재한다

  • public : 누구에게나 접근 허용
  • protected : 같은 패키지 혹은 상속관계만 허용
  • default : 같은 패키지만 허용
  • private : 외부는 허용안함

다음은 접근제한자를 붙일 수 있는 표이다

  클래스 필드 생성자 메소드
public O O O O
protected X O O O
default O O O O
private X O O O

 

못 붙이는 접근제한자는 에러발생

 

 

클래스패스

자바를 실행할 때 필요한 클래스의 경로이다

 

사용하는 방법은

2가지가 있다

 

1. 환경변수 classpath 

2. 자바 런타임 -classpath 옵션

 

환경변수 classpath

컴퓨터에 설치된 운영체재의 환경변수로 classpath 를 사용하는 방식이다

윈도우 경우 시스템 설정의 환경변수로 추가한다

출처 : https://hyoje420.tistory.com/7

 

-classpath 옵션

자바파일이 컴파일이 될 때 필요한 클래스명 경로를 알려주는 역할을 한다

java -classpath <경로> <클래스명> 방식으로 사용된다

 

ex) java -classpath C:\Java\JavaStudy07\com\example\study\Car.java 

 

 

 

이것이 자바다, 신용권 [한빛미디어]
생활코딩

 

 

 

'개발 & 방법론 > Java' 카테고리의 다른 글

9주차 : 예외처리  (0) 2021.02.14
자바 8주차 : 인터페이스  (0) 2021.02.13
6주차 : 상속  (0) 2020.12.30
5주차 : 클래스(Class)  (0) 2020.12.21
4주차 : 제어문  (0) 2020.12.12
    '개발 & 방법론/Java' 카테고리의 다른 글
    • 9주차 : 예외처리
    • 자바 8주차 : 인터페이스
    • 6주차 : 상속
    • 5주차 : 클래스(Class)
    loop-study
    loop-study
    오늘도 공부하자

    티스토리툴바