Search

객체지향 프로그래밍(1)

태그
클래스
제한자
OOP
자바
멀티캠퍼스
파일
OOP.pdf
클래스
클래스
속성 + 기능
필드 + 지역
필드
지역이 아닌 영역, 메서드 바깥 영역
필드에 존재하는 것(변수, 메서드) 들은 클래스의 멤버이다.
필드에 선언되는 변수는 필드변수(맴버 변수) 이다.
지역
메서드 내부, 메서드가 호출부에 의해서 호출되는 시점에 메모리에 올라가고 메서드 실행이 끝나고 호출부로 돌아가는 시점에 메모리에서 내려간다.
매개변수 : 호출부에서 전달하는 값(전달인자) 을 받기 위해 메서드의 선언부에 선언되는 변수
지역변수 : 메서드 내부에서 선언된 변수, 초기화를 해야지만 사용할 수 있다.
제한자(modifier)
modifier
설명
public
다른 패키지 내의 클래스에서도 호출할 수 있다.
protected
같은 패키지 내의 클래스나, 상속관계인 클래스에서 호출할 수 있다.
private
같은 클래스 안에서만 호출이 가능하다.
default
같은 패키지 내의 클래스에서만 호출할 수 있다. (생략하면 접근제한자가 default 이다.)
그 외 제한자 : static, final, abstract, void, synchronized
static
[클래스의] 의미를 지니는 제한자이다.
변수 앞에 static 을 붙이면 해당 변수는 JVM 의 jeap 영역에 올라가게 된다.
heap 영역에 올라간 데이터는 클래스로더가 클래스를 메모리에 올릴 때 올라가게 되며 프로그램이 종료될 때 까지 메모리에서 내려오지 않는다.
필드변수
인스턴스 변수 (non static 변수)
클래스가 인스턴스화 되는 시점에 초기화 되는 변수이며 같은 클래스 이더라도 인스턴스마다 값이 개별적이다.
필드변수 중에 일반적인 변수, 클래스를 인스턴스화 할 때 메모리에 올라가고, 인스턴스가 메모리에서 삭제될 때 함께 삭제된다.
인스턴스 변수의 사용법: [변수타입] [변수명] = ;
클래스 변수 (static 변수)
클래스가 메모리에 올라가는 시점에 초기화 되는 변수이며 클래스의 인스턴스들이 모두 공유하는 값을 저장한다.
필드변수 중에 static 제한자를 사용한 변수, 클래스로더가 클래스를 메모리에 올릴 때 올라가고, 프로그램이 종료될 때 까지 삭제되지 않는다.
클래스 변수의 사용법 : static [변수타입] [변수명] = ;
//필드변수 //인스턴스 변수 String nonStatic = "static 아님"; //클래스변수 static String staticVal = "static임"; //일반 메서드 public void testMethod() { System.out.println("일반 메서드 입니다."); } //static 메서드 public static void testStatic() { System.out.println("static 메서드 입니다."); }
Java
복사
초기화
필드변수의 초기화 순서
인스턴스 변수 : jvm 의 기본값 → 필드변수에 직접 대입한 값 → 초기화 블록 → 생성자
클래스 변수 : jvm 의 기본값 → 필드변수에 직접 대입한 값 → static 초기화 블록
static 초기화 블록
클래스 로더가 클래스를 메모리에 올리는 시점 → 클래스가 최초로 사용되는 시점에 동작