[자바 무료 강의] 객체를 좀 더 손쉽게 초기화해보다 - 생성자 - 코드라떼
Lesson List button
코스자바로 배우는 프로그래밍
hamburger button
강의객체를 좀 더 손쉽게 초기화해보다 - 생성자최종수정일 2021-10-11
아이콘약 6분

인스턴스를 생성하고 데이터를 삽입하는 방법으로 Dot 연산자를 이용하여 데이터를 삽입했었는데요. 이번엔 인스턴스를 초기화할 때 데이터를 삽입하는 방법을 배워봅시다.

추가 노트

목차


  1. 생성자
  2. this 키워드
  3. [실습해보기] 생성자를 이용하여 클래스를 만들어보자




생성자


인스턴스를 생성하려면 생성자가 항상 필요합니다.

  1. 생성자가 없으면 인스턴스를 만들 수 없습니다.
  2. 생성자는 클래스 이름과 동일해야 합니다.
  3. 생성자는 인스턴스 생성시 한번만 호출되는 특징을 가지고 있습니다.
class Person { String name; int age; String sex; // 생성자와 매개변수 Person(String name, int age, String sex) { this.name = name; this.age = age; this.sex = sex; } }
copy


Default 생성자

생성자를 명시적으로 선언하지 않는 경우 자동적으로 Default 생성자를 생성합니다.

class Person { String name; int age; String sex; // 컴파일러가 default 생성자를 주입한다. }
copy


인스턴스 생성

클래스의 생성자를 통해 인스턴스를 생성할 수 있습니다.

class Person { String name; int age; String sex; //생성자와 매개변수 Person(String name, int age, String sex) { this.name = name; this.age = age; this.sex = sex; } }
copy
Person person = new Person("이름", 1, "female");
copy




this 키워드


this 키워드는 자기 자신 Person 클래스를 지칭합니다. this 키워드를 통해 Person 클래스 스코프 내의 멤버 변수에 접근할 수 있습니다.

*이후의 Call By Value 강의에서 this는 인스턴스의 참조값을 나타내는 것을 알 수 있습니다. 지금은 넘어가세요.

접근할 수 있는 클래스 스코프 내에서 생성자의 매개 변수명과 멤버 변수명이 동일할 경우 this 키워드를 통해 멤버 변수에 접근할 수 있습니다.

class Person { String name; int age; String sex; // 생성자와 매개변수 Person(String name, int age, String sex) { this.name = name; // this.name은 클래스의 멤버 변수를 지칭하고 //name은 매개 변수를 지칭한다. this.age = age; // this.age는 클래스의 멤버 변수를 지칭하고 // age는 매개 변수를 지칭한다. this.sex = sex; // this.sex는 클래스의 멤버 변수를 지칭하고 // sex는 매개 변수를 지칭한다. } }
copy




[실습해보기] 생성자를 이용하여 클래스를 만들어보자


case 1

코드 작성(Person.java)

class Person { String name; Person(String name) { this.name = name; } }
copy



코드 작성(Main.java)

public class Main { public static void main(String[] args) { Person person = new Person("김철수"); System.out.println(person.name); } }
copy



출력

김철수
copy


case 2

코드 작성(Person.java)

class Person { String name; int age; Person(String name, int age) { this.name = name; this.age = age; } }
copy



코드 작성(Main.java)

public class Main { public static void main(String[] args) { Person person = new Person("김철수", 20); System.out.println(person.name); System.out.println(person.age); } }
copy



출력

김철수 20
copy


case 3

코드 작성(Person.java)

class Person { String personName; int personAge; String personGender; Person(String name, int age, String gender) { personName = name; personAge = age; personGender = gender; } }
copy



코드 작성(Main.java)

public class Main { public static void main(String[] args) { Person person = new Person("김철수", 20, "male"); System.out.println(person.personName); System.out.println(person.personAge); System.out.println(person.personGender); } }
copy



출력

김철수 20 male
copy
도전자 질문
아이콘이눋(2021-10-11 17:40 작성됨)
생성자를 생성하고 추가로 person 이라는 이름을 지정해줘서 오류가 났던거였습니다ㅋ큐ㅠㅠ. 감사합니다. 코드 상으로는 크게 문제가 없다니 다행이에요
아이콘코드라떼(2021-10-12 17:58 작성됨)
안녕하세요. 코드라떼입니다 :)

확인해 주셔서 감사합니다.
아이콘이눋(2021-10-10 18:44 작성됨)
public class Main {

    public static void main(String[] args) {
    Person person = new Person("김나박이", 24, "A");
    System.out.println(person.name);
    System.out.println(person.age);
    System.out.println(person.blood);
    }
}


class Person {
    String name;
    int age;
    String blood;

    Person person(String name,int age,String blood){
        this.name = name;
        this.age = age;
        this.blood = blood;
    }
}

이렇게 작성했는데 뭐가 잘못된건지 잘 모르겠네요..
아이콘코드라떼(2021-10-11 09:11 작성됨)
안녕하세요. 코드라떼입니다 :)

코드상으로는 잘못된 것이 없어 보이는데 어떤 문제를 겪고 있는지 알 수 있을까요?


이용약관|개인정보취급방침
알유티씨클래스|대표, 개인정보보호책임자 : 이병록
이메일 : cs@codelatte.io
사업자등록번호 : 824-06-01921
통신판매업신고 : 2021-성남분당C-0740
주소 : 경기도 성남시 분당구 대왕판교로645번길 12, 9층 24호
파일
파일파일
Root
파일

실습해보세요의 코드를 작성해보세요.

Output
root$
Lesson List button
코스자바로 배우는 프로그래밍
hamburger button
강의객체를 좀 더 손쉽게 초기화해보다 - 생성자최종수정일 2021-10-11
아이콘약 6분

인스턴스를 생성하고 데이터를 삽입하는 방법으로 Dot 연산자를 이용하여 데이터를 삽입했었는데요. 이번엔 인스턴스를 초기화할 때 데이터를 삽입하는 방법을 배워봅시다.

추가 노트

목차


  1. 생성자
  2. this 키워드
  3. [실습해보기] 생성자를 이용하여 클래스를 만들어보자




생성자


인스턴스를 생성하려면 생성자가 항상 필요합니다.

  1. 생성자가 없으면 인스턴스를 만들 수 없습니다.
  2. 생성자는 클래스 이름과 동일해야 합니다.
  3. 생성자는 인스턴스 생성시 한번만 호출되는 특징을 가지고 있습니다.
class Person { String name; int age; String sex; // 생성자와 매개변수 Person(String name, int age, String sex) { this.name = name; this.age = age; this.sex = sex; } }
copy


Default 생성자

생성자를 명시적으로 선언하지 않는 경우 자동적으로 Default 생성자를 생성합니다.

class Person { String name; int age; String sex; // 컴파일러가 default 생성자를 주입한다. }
copy


인스턴스 생성

클래스의 생성자를 통해 인스턴스를 생성할 수 있습니다.

class Person { String name; int age; String sex; //생성자와 매개변수 Person(String name, int age, String sex) { this.name = name; this.age = age; this.sex = sex; } }
copy
Person person = new Person("이름", 1, "female");
copy




this 키워드


this 키워드는 자기 자신 Person 클래스를 지칭합니다. this 키워드를 통해 Person 클래스 스코프 내의 멤버 변수에 접근할 수 있습니다.

*이후의 Call By Value 강의에서 this는 인스턴스의 참조값을 나타내는 것을 알 수 있습니다. 지금은 넘어가세요.

접근할 수 있는 클래스 스코프 내에서 생성자의 매개 변수명과 멤버 변수명이 동일할 경우 this 키워드를 통해 멤버 변수에 접근할 수 있습니다.

class Person { String name; int age; String sex; // 생성자와 매개변수 Person(String name, int age, String sex) { this.name = name; // this.name은 클래스의 멤버 변수를 지칭하고 //name은 매개 변수를 지칭한다. this.age = age; // this.age는 클래스의 멤버 변수를 지칭하고 // age는 매개 변수를 지칭한다. this.sex = sex; // this.sex는 클래스의 멤버 변수를 지칭하고 // sex는 매개 변수를 지칭한다. } }
copy




[실습해보기] 생성자를 이용하여 클래스를 만들어보자


case 1

코드 작성(Person.java)

class Person { String name; Person(String name) { this.name = name; } }
copy



코드 작성(Main.java)

public class Main { public static void main(String[] args) { Person person = new Person("김철수"); System.out.println(person.name); } }
copy



출력

김철수
copy


case 2

코드 작성(Person.java)

class Person { String name; int age; Person(String name, int age) { this.name = name; this.age = age; } }
copy



코드 작성(Main.java)

public class Main { public static void main(String[] args) { Person person = new Person("김철수", 20); System.out.println(person.name); System.out.println(person.age); } }
copy



출력

김철수 20
copy


case 3

코드 작성(Person.java)

class Person { String personName; int personAge; String personGender; Person(String name, int age, String gender) { personName = name; personAge = age; personGender = gender; } }
copy



코드 작성(Main.java)

public class Main { public static void main(String[] args) { Person person = new Person("김철수", 20, "male"); System.out.println(person.personName); System.out.println(person.personAge); System.out.println(person.personGender); } }
copy



출력

김철수 20 male
copy
도전자 질문
아이콘이눋(2021-10-11 17:40 작성됨)
생성자를 생성하고 추가로 person 이라는 이름을 지정해줘서 오류가 났던거였습니다ㅋ큐ㅠㅠ. 감사합니다. 코드 상으로는 크게 문제가 없다니 다행이에요
아이콘코드라떼(2021-10-12 17:58 작성됨)
안녕하세요. 코드라떼입니다 :)

확인해 주셔서 감사합니다.
아이콘이눋(2021-10-10 18:44 작성됨)
public class Main {

    public static void main(String[] args) {
    Person person = new Person("김나박이", 24, "A");
    System.out.println(person.name);
    System.out.println(person.age);
    System.out.println(person.blood);
    }
}


class Person {
    String name;
    int age;
    String blood;

    Person person(String name,int age,String blood){
        this.name = name;
        this.age = age;
        this.blood = blood;
    }
}

이렇게 작성했는데 뭐가 잘못된건지 잘 모르겠네요..
아이콘코드라떼(2021-10-11 09:11 작성됨)
안녕하세요. 코드라떼입니다 :)

코드상으로는 잘못된 것이 없어 보이는데 어떤 문제를 겪고 있는지 알 수 있을까요?


이용약관|개인정보취급방침
알유티씨클래스|대표, 개인정보보호책임자 : 이병록
이메일 : cs@codelatte.io|운영시간 09:00 - 18:00(평일)
사업자등록번호 : 824-06-01921|통신판매업신고 : 2021-성남분당C-0740
주소 : 경기도 성남시 분당구 대왕판교로645번길 12, 9층 24호(경기창조혁신센터)
파일
파일파일
Root
파일

실습해보세요의 코드를 작성해보세요.

Output
root$