728x90
반응형
- 생성자: 객체가 생성될때마다 호출되는 '인스턴스 초기화 메소드'
- 인스턴스 초기화란? 인스턴스변수를 초기화하거나 메소드를 호출해서 객체를 사용할 준비를 하는 것
- 클래스이름(매개변수 선언, ...) {
//객체생성시 수행될 코드 (주로 인스턴스변수의 초기화 코드)
}
- 생성자의 이름은 클래스이름과 같아야 한다.
- 반환타입 없지만, void 안붙인다.
- 모든 클래스에는 생성자 선언이 필수이다. →클래스 내부에 생성자 하나도 없을때에만, 컴파일러가 기본생성자(=매개변수가 없는 생성자)를 자동추가
- 클래스이름() { }
- 생성자 호출하기: Time t=new Time(12, 34, 56);
- 객체를 생성. Time t=new Time();
- 인스턴스변수를 초기화. t.hour=12; t.minute=34; t.second=56;
- 생성자를 호출. Time t=new Time(12, 34, 56);
- 객체의 생성과 사용
- 클래스명 변수명; //(클래스의 객체를 참조할)참조변수 선언
- Tv t;
- 변수명=new 클래스명; //클래스의 객체를 생성후(new), 객체의 주소를 참조변수에 저장
- t=new Tv();
- 객체의 사용
- t.channel=7; //Tv객체의 멤버변수 channel의 값은 7
- t.channelUp(); //Tv객체의 메소드 channelUp() 을 호출
Java 필수 기초 지식 -접근제어자 (tistory.com)
- 메소드
- 반환타입 메소드명(매개변수선언, ...) { }
- 반환타입 없으면, void
- 즉, 반환타입이 void이면 return문 생략 (반환타입있으면, 반드시 return문 필요!)
- 인스턴스메소드
- 객체 생성 후, '참조변수.메소드이름()'으로 호출
- 인스턴스멤버(iv, im)와 관련된 작업
- 메소드 내에서 인스턴스변수,클래스변수 사용 가능
- 생성자
- static메소드 (클래스메소드)
- 객체생성없이, '클래스이름.메소드이름()'으로 호출
- 인스턴스멤버(iv, im)와 관련없는 작업 →메소드 내에서는 인스턴스 멤버들을 직접 사용할수없다.
- 인스턴스변수,클래스변수 사용 불가능 (객체생성해야 사용가능)
- 인스턴스메소드 호출 불가능 / static메소드 호출 가능
- static메소드 호출 시, 객체가 없을수도 있기 때문
- 선언위치에 따른 변수의 종류
변수의 종류 | 선언위치(영역) | 초기화시점 | 생성시기 |
클래스 변수 | 클래스 영역 | 클래스가 처음 로딩될때 한번 | 클래스가 메모리에 올라갈 때 |
인스턴스 변수 | 인스턴스가 생성될때마다 | 인스턴스가 생성되었을때 | |
지역변수 | 클래스영역 이외의 영역(메소드) | 수동초기화 필수! | 변수선언문이 수행되었을때 |
- 클래스변수는 static+변수
- 초기화
- 멤버변수(인스턴스변수,클래스변수)는 자동초기화된다 (지역변수는 수동초기화해야함)
- 멤버 변수는 메소드 밖에서 선언된 변수를 말한다. 메소드 안에 선언된 변수는 지역변수
- 멤버변수(인스턴스변수,클래스변수)는 자동초기화된다 (지역변수는 수동초기화해야함)
- 멤버변수의 초기화
- 자동초기화
- 기본형변수의 기본값은 0, 참조형변수의 기본값은 null
- 간단초기화 (=)
- Engine e=new Engine();
- 복잡초기화
- 초기화블럭: 여러 문장 넣을때
- 인스턴스 초기화 블럭: { }
- 클래스 초기화 블럭: static { }
- 생성자
- 초기화블럭: 여러 문장 넣을때
- 자동초기화
- 생성자 this()
- 생성자에서 다른 생성자를 호출할때, 클래스이름이 아닌 this를 사용!
- 다른생성자 호출 시 첫줄에서만 사용가능
- 참조변수 this
- 인스턴스 자신을 가리키는 참조변수
- this.인스턴스변수
- 인스턴스메소드(생성자)에서 사용가능
- 지역변수와 인스턴스변수를 구별할때 사용
- 인스턴스 자신을 가리키는 참조변수
- 조상의 생성자 super()
- 조상의 생성자를 호출한다
- 조상의 멤버는 조상의 생성자를 호출해서 초기화
- 생성자의 첫줄에 반드시 생성자를 호출하여야 한다. (그렇지않으면, 컴파일러가 생성자의 첫줄에 super(); 자동추가)
- 참조변수 super
- 객체자신을 가리키는 참조변수
- 조상의 멤버를 자신의 멤버와 구별할때 사용
- 인스턴스메소드 내에만 존재 (static메소드 내에 사용불가)
728x90
반응형
'Java Tutorial' 카테고리의 다른 글
[Java] StringBuilder 클래스 (0) | 2023.07.24 |
---|---|
[Java] 예외 처리 (0) | 2023.07.02 |
[Java] 람다식 (0) | 2023.03.14 |
[Java] Set컬렉션 (0) | 2023.02.19 |
[Java] List컬렉션 (0) | 2023.02.18 |