import 문
- 클래스를 사용할 때 패키지 이름 생략할 수 있다.
- 컴파일러에게 클래스가 속한 패키지를 알려줌
class ImportTest {
java.util.Date today = new java.util.Date();
}
// 대신 상단에 import 선언 후
import java.util.Date;
class ImportTest{
Date today = new Date();
]
- java.lang 패키지의 클래스는 import하지 않고도 사용 가능
String, Object, System, Thread ... 등등등
import java.lang.*; 모든 클래스(생략 가능 default package)
import문이 없으면 모든 클래스에 패키지 이름을 붙여야 함.
- import문은 컴파일 시에 처리되므로 프로그램의 성능에 영향 없음.
static import문
- static멤버를 사용할 때 클래스 이름을 생략할 수 있게 해준다.
import static java.lang.Integer.*;
import static java.lang.Math.random;
import static java.lang.System.out;
System.out.println(Math.random()); // 대신
out.println(random()); // 으로 생략 할 수 있게 해준다.
제어자
- 클래스와 클래스의 멤버(멤버 변수, 메서드)에 부가적인 의미를 부여한다.
접근 제어자 public, protected, (default), private
그 외 static, final, abstract, native, transient, synchronized, volatile, strictfp
- 하나의 대상에 여러 제어자를 같이 사용가능(접근 제어자는 하나만)
public class ModifyTest{
public static final int WIDTH = 200;
public static void main(String[] args){
System.out.println("WIDTH="+WIDTH);
}
}
static - 클래스의, 공통적인
멤버변수에 붙으면?
- 모든 인스턴스에 공통적으로 사용되는 클래스 변수가 됨
- 클래스 변수는 인스턴스를 생성하지 않고도 사용 가능
- 클래스가 메모리에 로드될때 생성
메서드에 붙으면?
- 인스턴스를 생성하지 않고도 호출 가능한 static 메서드가 된다.
- static메서드 내에서는 인스턴스 멤버들을 직접 사용 불가능.
final - 마지막의, 변경될 수 없는
멤버변수(iv),지역변수(lv) 변수 앞에 final이 붙으면, 값을 변경할 수 없는 상수가 된다.
클래스 앞에 붙으면 변경될 수 없는 클래스가 된다. final로 지정된 클래스는 다른 클래스의 조상이 될 수 없음.
메서드 앞에 붙으면 변경될 수 없는 메서드, final로 지정된 메서드는 오버라이딩을 통해 재정의 될 수 없다.
abstract - 추상의, 미완성의
클래스 앞에 붙으면 클래스 내에 추상 메서드가 선언
메서드 앞에 선언부만 작성하고 구현부는 작성하지 않은 추상 메서드임을 알린다.
추상메서드를 가지고 있는 클래스를 추상 클래스 라고 함.
미완성 메서드임 선언부고 몸통(구현부)가 존재 하지 않음.
접근 제어자(access modifier)
private : 같은 클래스 내에서만 접근이 가능하다.
(default) : 같은 패키지 내에서만 접근이 가능하다.
protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근이 가능하다.
public : 접근 제한이 전혀 없다.
'Java' 카테고리의 다른 글
Java : Collection Framework(ArrayList, LinkedList, Stack, Queue) (0) | 2021.11.29 |
---|---|
Java : 캡슐화 , 다형성 , instanceof (0) | 2021.11.26 |
Java : 오버라이딩 , 참조변수 생성자 super() , 패키지 클래스 패스 (0) | 2021.11.24 |
Java : 상속 (0) | 2021.11.24 |
Java : 오버로딩 , 생성자 (0) | 2021.11.24 |