KH자바수업_4_생성자
이론_JAVA
생성자
클래스를 처음 만들 때 멤버 변수나 상수를 초기화 한다.
1. 생성자는 인스턴스를 초기화 할 때의 명령어 집합이다.
2. 생성자의 이름은 그 클래스의 이름과 같다.
3. 생성자는 메소드가 아니고, 상속되지 않으며, 리턴 값이 없다.
디폴트 생성자
하나의 클래스에는 반드시 적어도 하나 이상의 Constructor(생성자)가 존재한다.
프로그래머가 Constructor를 기술하지 않으면 Default Constructor가 자동으로 생성된다.(컴파일러가 코드에 넣어 줌)
Default Constructor는 매개 변수가 없음.
Default Constructor는 구현부가 없음.
만약 클래스에 매개변수가 있는 생성자를 추가하면 디폴트 생성자는 제공하지 않음.
아래는 디폴트 생성자와 매개변수가 존재하는 생성자를 만들고 테스트해 보았다.


참조 자료형
크기가 정해진 기본 자료형으로 선언하는 변수가 있고, 클래스 자료형으로 선언하는 참조 자료형 변수가 있다.
전에서 자주 사용했던 String 객체 같은 경우가 참조 자료형이다.
기본 자료형 : int, char, float, double 등..
참조 자료형 : Date, String, Student(직접 구현) 등.
정보 은닉
private 접근 제어자
클래스의 외부에서 클래스 내부의 멤버 변수나 메서드에 접근하지 못하게 하는 경우에 사용한다.
멤버 변수나 메서드를 외부에서 사용하지 못하도록 하여 오류를 줄일 수 있다.
변수에 대해서는 필요한 경우 get(), set() 메서드를 제공한다.
같은 패키지 내에 클래스 파일이 존재해도 멤버 변수에 private 접근 제어자를 사용하면 main에서 직접적으로 접근할 수 없다.
그래서 getter, setter를 구현해 주어야 하는데, 이클립스 에디터에서는 간단하게 클릭으로 생성이 가능하다.

마우스 클릭 만으로 쉽게 만들 수 있다.

Main에서 접근하기 위해서는 아래와 같이 메소드를 통해 간접적으로 접근해 주어야 한다.

이번에는 다른 패키지 안에 있는 Student 클래스를 사용해 보자.
다른 패키지 안에 있는 클래스를 사용하려면 Import해 주어야 한다.

import 해주었음에도 불구하고 아직도 빨간줄이 뜬다. 이렇게 된 이유는 default 접근 제어자 때문이다.

빨간 줄로 에러가 나타났다.
다른 패키지 안에 존재하는 멤버변수는 직접적으로 접근할 수 없다. 만약 다른 패키지에서도 직접적으로 접근하고 싶다면 Student클래스의 구현부에 가서 public 접근 제어자를 사용해 주어야 한다.

public 접근 제어자를 사용하기 싫다면, getter, setter를 구현해도 좋다.

에러가 사라졌다.
자바의 접근 제어자
| 접근 제어자 | 설명 |
|---|---|
| public | 외부 클래스 어디에서나 접근할 수 있다. |
| protected | 같은 패키지 내부와 상속 관계의 클래스에서만 접근할 수 잇고 그 외 클래스에서는 접근할 수 없습니다. |
| 아무것도 없는 경우 | default이며 같은 패키지 내부에서만 접근할 수 있습니다. |
| private | 같은 클래스 내부에서만 접근할 수 있습니다. |
댓글
댓글을 불러오는 중…