접근 제어자 : public, protected, (default), private
그 외 : static, final abstract, native, transient, synchronize....
-모든 인스턴스에 공통적으로 사용되는 클래스 변수가 된다.
맴버변수 -클래스 변수는 인스턴스를 생성하지 않고도 사용 가능하다.
/*제어자*/ -클래스가 메모리에 로드될 때 생성된다.
static
매서드 -인스턴스를 생성하지 않고도 호출이 가능한 static 메서드가 된다.
-static 메서드 내에서는 인스턴스멤버들을 직접 사용할 수 없다.
-변경될 수 없는 클래스, 확장될 수 없는 클래스가 된다.
클래스 -그래서 final로 지정된 클래스는 다른 클래스의 조상이 될 수 없다.
/*제어자*/
final
매서드 -변경될 수 없는 메서드, final로 지정된 메서드는
오버라이딩을 통해 재정의 될 수 없다.
멤버변수 -변수 앞에 final이 붙으면, 값을 변경할 수 없는
상수가 된다.
abstract 클래스 -클래스 내에 추상 메서드가 선언되어 있음을 의미한다.
메서드 -선언부만 작성하고 구현부는 작성하지 않은 추상 메서드임을 알린다.
abstract class AbstractTest { //추상 클래스(추상 메서드를 포함한 클래스)
abstract void move(); //추상 메서드(구현부가 없는 메서드)
}
AbstractTest a = new AbstractTest();
// 에러. 추상 클래스의 인스턴스 생성 불가능
// (미완성 설계도로 제품을 만들 수 없다)