패키지 선언
해당 클래스가 어떤 패키지에 속할 것인지를 선언하는 것
package 상위패키지.하위패키지;
public class ClassName { ••• }
- 패키지 이름 규칙
- 숫자로 시작해서는 안 되고 $를 제외한 특수 문자를 사용해서는 안된다.
- java로 시작하는 패키지는 자바 표준 API에서만 사용하므로 사용해서는 안된다.
- 모두 소문자로 작성하는 것이 관례이다
- import문
- 사용하고자 하는 클래스 또는 인터페이스가 다른 패키지에 소속되어 있다면, import문으로 해당 패키지의 클래스 또는 인터페이스를 가져와 사용할 것임을 컴파일러에게 알려줘야 한다.
- 상위 패키지를 import했다고 해서 하위 패키지까지 import되는 것은 아니다.
import 상위패키지. 하위패키지. 클래스이름;
import 상위패키지.하위패키지.*;
접근 제한자
접근(클래스 및 인터페이스 그리고 이들이 가지고 있는 멤버의 접근)을 제한하기 위해 사용된다.
• public 접근 제한자: 단어 뜻 그대로 외부 클래스가 자유롭게 사용할 수 있도록 한다.
• protected 접근 제한자: 같은 패키지 또는 자식 클래스에서 사용할 수 있도록 한다.
• private 접근 제한자: 단어 뜻 그대로 개인적인 것이라 외부에서 사용될 수 없도록 한다.
• default 접근 제한: 같은 패키지에 소속된 클래스에서만 사용할 수 있도록 합니다.
클래스의 접근 제한
- default 접근 제한
- 클래스를 선언할 때 public을 생략했다면 클래스는 default 접근 제한을 가짐
- 다른 패키지에서는 사용할 수 없도록 제한
- public 접근 제한
- 같은 패키지뿐만 아니라 다른 패키지에서도 아무런 제한 없이 사용 가능
생성자의 접근 제한
객체를 생성하기 위해서는 new 연산자로 생성자를 호출
- public 접근 제한
- public 접근 제한은 모든 패키지에서 아무런 제한 없이 생성자를 호출할 수 있도록 한다.
- protected 접근 제한
- protected 접근 제한은 default 접근 제한과 마찬가지로 같은 패키지에 속하는 클래스에서 생성자를 호출할 수 있도록 한다. 차이점으로 다른 패키지에 속한 클래스가 해당 클래스의 자식 클래스라면 생성자를 호출할 수 있다.
- default 접근 제한
- default 접근 제한은 같은 패키지에서는 아무런 제한 없이 생성자를 호출할 수 있으나, 다른 패키지에서는 생성자를 호출할 수 없도록 한다.
- private 접근 제한
- private 접근 제한은 동일한 패키지이건 다른 패키지이건 상관없이 생성자를 호출하지 못하도록 제한. 오로지 클래스 내부에서만 생성자를 호출할 수 있고 객체를 만들 수 있다.
필드와 메소드의 접근 제한
- public 접근 제한
- public 접근 제한은 모든 패키지에서 아무런 제한 없이 필드와 메소드를 사용할 수 있도록 해준다.
- protected 접근 제한
- protected 접근 제한은 default 접근 제한과 마찬가지로 같은 패키지에 속하는 클래스에서 필드와 메소드를 사용할 수 있도록 한다. 차이점으로 다른 패키지에 속한 클래스가 해당 클래스의 자식 클래스라면 필드와 메소드를 사용할 수 있다.
- default 접근 제한
- 필드와 메소드를 선언할 때 접근 제한자를 생략하면 default 접근 제한을 가집니다. default 접근 제한은 같은 패키지에서는 아무런 제한 없이 필드와 메소드를 사용할 수 있으나 다른 패키지에서는 필드와 메소드를 사용할 수 없도록 한다.
- private 접근 제한
- private 접근 제한은 동일한 패키지이건 다른 패키지이건 상관없이 필드와 메소드를 사용하지 못하도록 제한. 오로지 클래스 내부에서만 사용할 수 있습니다.
Getter와 Setter 메소드
- Setter : 매개값을 검증해서 유효한 값만 객체의 필드로 저장하는 메소드
- Getter : 필드값을 가공한 후 외부로 전달해주는 메소드
- 클래스를 선언할 때 가능하다면 필드를 private로 선언해서 외부로부터 보호하고, 필드에 대한 Setter와 Getter 메소드를 작성해서 필드값을 안전하게 변경/사용하는 것이 좋다.
- 필드 타입이 boolean일 경우에는 Gettei는get= 시작하지 않고 is로 시작하는 것이 관례
private 타입 fieldName; // <--------필드 접근 저한자: private
//Getter
// 접근 제한자 : public, 리턴타입: 필드타입, 메소드 이름: get+필드이름(첫글자는 대문자)
public 리턴 타입 getFieldName() {
return fieldName;
}
//Setter
// 접근 제한자 : public, 리턴타입: 필드타입, 메소드 이름: set+필드이름(첫글자는 대문자)
public void setFieldName(타입 fieldName) {
this.fieldName = fieldName;
}
1. 접근 제한에 대한 설명으로 틀린 것은 무엇입니까?
① 접근 제한자는 클래스, 필드, 생성자, 메소드의 사용을 제한한다.
② public 접근 제한은 아무런 제한 없이 해당 요소를 사용할 수 있게 한다.
③ default 접근 제한은 해당 클래스 내부에서만 사용을 허가한다. (x)
-> default는 같은 패키지내에서 사용가능하며 다른 패키지에서는 사용이 불가능 하다. 해당 클래스 내부에서만 사용을 허가하는 접근제한자는 private이다.
④ 외부에서 접근하지 못하도록 하려면 private 접근 제한을 해야 한다.
'JAVA' 카테고리의 다른 글
타입 변환과 다형성 (0) | 2022.10.31 |
---|---|
상속 (0) | 2022.10.31 |
인스턴스 멤버와 정적 멤버 (0) | 2022.10.13 |
메소드 (0) | 2022.10.13 |
생성자 (0) | 2022.10.12 |