Backend/Java
Java 생성자
호ㅁl
2022. 11. 7. 23:51
생성자
- 객체 생성에 관여한다.
- 클래스를 처음 만들 때 멤버변수나 상수를 초기화하는데 사용한다.
- 생성자 클래스는 생성할 때만 호출한다.
- 생성자 이름은 클래스와 같고, 생성자는 반환값이 없다.
- 멤버 변수에 대한 값들을 매개변수로 받아서 인스턴스가 새로 생성될 때 멤버변수 값들 초기화한다.
- 생성자는 매개변수에 따라 여러개를 만들 수 있다.
디폴트 생성자
- 생성자가 없는 클래스는 클래스 파일을 컴파일 할때 자바 컴파일러에서 자동으로 생성자를 만들어준다.
- 자바 컴파일러는 생성자가 하나도 없는 경우에만 디폴트 생성자를 제공한다.
- 매개변수와 구현코드가 없다.
- 생성자 이름은 클래스 이름과 같다.
- 생성자는 반환값이 없다.
생성자 만들기
- this : 자기자신의 클래스(Constr)의 변수 'a' 에 '1000'을 담는다.
- 생성자는 주로 멤버변수에 대한 값들을 매개변수로 받아서 인스턴스가 새로 생성될 때 멤버변수 값들을 초기화하는 역할을 한다.
public A() { } - 생성자 메소드, 기본생성자 매개변수 없음.
기본형이 아닌 생성자는 생성자를 작성해야한다.
super 부모, 상위 상위클래스에 생성자를 호출해야 객체생성. 생성자의 첫번째줄에 무조건 있어야함.
작성이 안되어있어도 첫줄에 생략되어 있다.
★자바의 메모리 구조형
class : 클래스,변수,메소드 이름, 클래스에 대한 정보를 등록하는영역
stack : 메소드를 동작시키는 영역,
heap : 객체생성 시키는 영역
static
- static : 클래스소속
- static 이 없는 경우 : 인스턴스 소속
- 클래스로 정의된 변수나 메소드는 클래스를 통해서 접근가능하지만, 인스턴스로 정의된 변수나 메소드는 해당클래스의 인스턴스를 생성해야만 접근할 수 있다.
- 인스턴스에서 해당 클래스로 정의된 변수를 수정하면 그 클래스를 퐘한 모든 인스턴스의 변수가 수정되지만, 인스턴스에서 해당 인스턴스로 정의된 변수를 수정하면 해당 인스턴스의 변수만 수정된다.
접근제어
public : 접근제어자, 메소드를 외부에서 사용하려고 할 때 접근사용여부를 제어하는 예약어
어디에서든 접근허용
private : 접근제한, 외부에서 사용 불가능, class내부에서만 사용가능
default : 같은 폴더(패키지) 범위 내에서 사용
protected : 상속받은 패키지까지 사용가능