[K-digital] Today I Learned #7

Bella·2021년 8월 24일
0

java

목록 보기
4/5


오늘은 자바의 생성자에 대해서 배웠다!!

1. 생성자

자바에서 클래스를 생성할 때 사용하는 Student() 같은 함수를 생성자 라고 한다.
생성자가 하는 일: 클래스를 처음 만들 때 멤버 변수나 상수를 초기화하는 것.

1-1. 디폴트 생성자

package sungjuk;

public class Student {

    String name = "나";
    String grade = "A";

    public Student() {
       
    }

public Student()와 같이 클래스 파일을 컴파일할 때,
자바 컴파일러가 자동으로 제공하는 생성자를 디폴트 생성자 라고 한다.

1-2. 생성자 만들기

멤버 변수를 매개변수로 받아서 값을 초기화해 줄 때 생성자를 이용한다.

package oop2;

public class Constructor {
    String brand;
    String cpu;
    int ram;
    int hdd;
    boolean odd;
    String graphic;
    int usb20;
    int usb30;
    boolean wifi;
    String comcase;

    public Constructor(String brand) {
        super();
        this.brand = brand;
    }
}

위의 brand라는 String형 매개변수를 입력받아서 Constructor 클래스를 생성하는 생성자가 바로

public Constructor(String brand) {
        super();
        this.brand = brand;
    }

위의 친구!
하지만 이렇게 생성자를 직접 구현한 경우, main() 클래스에서

Constructor constructor = new Constructor();

이라고 코딩하면 Constructor() 부분에서 에러가 난다.

왜냐면 디폴트 생성자가 없기 때문!
이런 경우, 디폴트 생성자를 추가로 직접 구현해주어야 한다.
(자바 컴파일러는 생성자가 하나도 없을 때에만 디폴트 생성자를 제공하기 때문!)

public Constructor(){} 

라고 디폴트 생성자를 추가해주어야함!

3. 생성자 오버로드

오버로드(overload) : 메서드 이름이 같고 매개변수만 다른 경우
생성자 오버로드 : 클래스에 생성자가 두 개 이상 제공되는 경우를 말한다.
Constructor 클래스처럼 멤버변수가 많다면
인스턴스를 만드는 경우에 필요한 생성자를 골라서 사용할 수 있다.

public Constructor(String brand) {
        super();
        this.brand = brand;
    }
public Constructor(String brand, int ram) {
        super();
        this.brand = brand;
        this.ram = ram;
    }    
 

오늘의 오늘 : 이제 슬슬 수업에 적응해가는 중! 더 풀파워 집중하고 복습시간 잘 활용해서 남은 기간 알차게 보내자!!!

profile
꾸준히 배우는 삶, 개발자로

0개의 댓글