동글이기가 레포

package 키워드

 

■ package란?

 

Java에서 클래스를 구분짓는 클래스들의 모음

 

 

■ 왜 사용할까?

 

- 명명 규칙을 통한 네이밍 충돌 방지(클래스명의 고유성 보장)

- 클래스, 인터페이스 등을 더 쉽게 찾고 사용하기 위해서

 

 

※ 명명규칙

 

- corp 이름 또는 도메인 등은 고유하기 때문에 이러한 이름으로 많이 사용

- 웹 사이트 주소일 경우 주소를 반대로 기재

- 소스 파일들을 점(.)으로 구분

- lowercase로 작성

 

■ 선언 방법

 

// 패키지 선언 예시
package com.test

 

패키지를 선언할 때에는 반드시 코드의 처음에 해야한다.

 

 

 

import 키워드

 

■ import란?

 

다른 패키지안의 클래스에 접근하기 위해 사용하는 키워드

 

 

■ 특징

 

- 클래스 이름을 명시하면 특정 클래스에 접근

- 별(*)을 사용하면 패키지 내의 모든 클래스에 접근 가능

- 'import 패키지이름.클래스이름' 으로 사용

 

// 기본적인 import 예시
import java.util;
import java.util.*; // util내부의 모든 패키지에 접근

 

 

■ static import

 

static import를 사용하면 static 멤버를 클래스 이름을 명시하지 않고 접근이 가능하다.

 

주로 가독성을 위해 쓰이나, 너무 남발하면 오히려 가독성을 해치니 조심하자 -_-;;

 

// static import 예시
import static java.lang.System.*;

public class Main {
    public static void main(String[] args) {
        out.println("안녕"); // System 클래스를 명시하지 않고도 println()을 사용 가능
    }
}

 

 

■ 이중 충돌 방지

 

Data라는 클래스를 가진 두 개의 패키지가 존재한다.

 

먼저, 컴파일 에러를 발생시키는 예시이다.

이때 util과 sql에 Date라는 클래스가 겹치기 때문에 컴파일러가 어느 것을 사용하는지 모르게 된다.

 

// 컴파일 에러
import java.util.*;
import java.sql.*;

Date today;

 

만약, util만 Date를 사용하고 sql은 사용하지 않는다면 아래와 같이 사용할 수 있다.

 

// util만 Date클래스 사용
import java.util.Date;
import java.sql.*;

 

마지막으로 util과 sql 둘 다 Date클래스를 사용해야 한다면, 변수 선언 시에 패키지 명까지 기술해야 한다.

 

// util과 sql 모두 Date 클래스 사용
java.util.Date d1 = new java.util.Date();
java.sql.Date d2 = new java.sql.Date();

 

 

 

클래스패스

 

■ 클래스패스란?

 

이름에서도 알 수 있듯이, 클래스를 찾기 위한 경로를 말한다.

 

JVM이 프로그램을 실행할 때 클래스 파일을 찾게 되는데, 이때 클래스패스를 사용한다.

 

※ 그러나, 요즘에는 /jre/lib/ext 폴더에 필요한 라이브러리를 복사하면 사용이 가능하기 때문에 특별한 경우가 아니면 잘 사용하지 않는다.

 

■ 클래스패스 설정 방법

 

"java -classpath 클래스파일위치 클래스명"

 > 만약 설정하지 않으면 현재 디렉터리 안에서 클래스를 찾게 된다.

 

 

 

CLASSPATH 환경변수

 

아마 대부분의 사람들이 위의 클래스패스 설정을 프로젝트마다 하지는 않을 것이다(아마도)

 

너무 귀찮기 떄문이다.

 

그래서 하나하나 설정을 하지 않고 환경변수로 등록해놓으면 "java -classpath"를 사용하지 않아도 클래스를 찾을 수 있다.

 

나는 현재 Windows이기 때문에... 이러한 기준으로 설정방법을 본다면....

 

 

■ 환경변수 설정 방법

 

내 컴퓨터 -> 속성 -> 고급 시스템 설정 -> 고급 -> 환경변수 -> 시스템 변수 -> Path

 

이러한 방법으로 설정이 가능하다.

 

 

 

접근지시자

 

접근지시자... 얼마전에 한 기억이 난다...

 

좀 자주 나오는 내용인듯...

 

 

xcv20123.tistory.com/30?category=936685

 

4주차 : 클래스

클래스 정의하는 방법 ■ 클래스란? - 객체를 정의하는 틀 또는 설계도와 같은 의미 - Java에서는 이러한 클래스를 가지고, 여러 객체를 생성하여 사용 ■ 구성 - 생성자, 객체의 상태를 나타내는

xcv20123.tistory.com

 

이 때 정리한 내용이 있다.

 

그래도 복습겸 한번 더 적자면...

 

 

접근 지시자는 아무나 접근하지 못하도록 허용 범위를 제한하는 것이다.

 

클래스나 메소드, 변수 모두 사용 가능하다.

 

가장 허용 범위가 큰 public부터 가장 범위가 작은 private까지 총 4가지의 접근 지시자가 존재한다.

 

  클래스 내부 패키지 하위 클래스 그 외
public o o o o
protected o o o x
default o o x x
private o x x x

'스터디 > 동기 Java 스터디' 카테고리의 다른 글

6주차 : 예외 처리  (0) 2021.05.05
5주차 : 인터페이스  (0) 2021.05.02
4주차 : 상속  (0) 2021.04.25
4주차 : 클래스  (0) 2021.04.21
[Effective Java] 3주차 자바 과제  (0) 2021.04.18

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading