인스턴스를 생성하고 데이터를 삽입하는 방법으로 Dot 연산자를 이용하여 데이터를 삽입했었는데요. 이번엔 인스턴스를 초기화할 때 데이터를 삽입하는 방법을 배워봅시다.
ㅤ
인스턴스를 생성하려면 생성자가 항상 필요합니다.
생성자가 없으면 인스턴스를 만들 수 없습니다.
생성자는 클래스 이름과 동일해야 합니다.
생성자는 인스턴스 생성시 한번만 호출되는 특징을 가지고 있습니다.
class Person {
String name;
int age;
String sex;
// 생성자와 매개변수
Person(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
}
ㅤ
생성자를 명시적으로 선언하지 않는 경우 자동적으로 Default 생성자를 생성합니다.
class Person {
String name;
int age;
String sex;
// 컴파일러가 default 생성자를 주입한다.
}
ㅤ
클래스의 생성자를 통해 인스턴스를 생성할 수 있습니다.
class Person {
String name;
int age;
String sex;
//생성자와 매개변수
Person(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
}
Person person = new Person("이름", 1, "female");
ㅤ
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는 매개 변수를 지칭한다.
}
}
ㅤ
코드 작성(Person.java)
class Person {
String name;
Person(String name) {
this.name = name;
}
}
코드 작성(Main.java)
public class Main {
public static void main(String[] args) {
Person person = new Person("김철수");
System.out.println(person.name);
}
}
출력
김철수
ㅤ
코드 작성(Person.java)
class Person {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
}
코드 작성(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);
}
}
출력
김철수
20
ㅤ
코드 작성(Person.java)
class Person {
String personName;
int personAge;
String personGender;
Person(String name, int age, String gender) {
personName = name;
personAge = age;
personGender = gender;
}
}
코드 작성(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);
}
}
출력
김철수
20
male
생성자를 생성하고 추가로 person 이라는 이름을 지정해줘서 오류가 났던거였습니다ㅋ큐ㅠㅠ. 감사합니다. 코드 상으로는 크게 문제가 없다니 다행이에요
안녕하세요. 코드라떼입니다 :) 확인해 주셔서 감사합니다.
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; } } 이렇게 작성했는데 뭐가 잘못된건지 잘 모르겠네요..
안녕하세요. 코드라떼입니다 :) 코드상으로는 잘못된 것이 없어 보이는데 어떤 문제를 겪고 있는지 알 수 있을까요?
실습해보세요의 코드를 작성해보세요.
인스턴스를 생성하고 데이터를 삽입하는 방법으로 Dot 연산자를 이용하여 데이터를 삽입했었는데요. 이번엔 인스턴스를 초기화할 때 데이터를 삽입하는 방법을 배워봅시다.
ㅤ
인스턴스를 생성하려면 생성자가 항상 필요합니다.
생성자가 없으면 인스턴스를 만들 수 없습니다.
생성자는 클래스 이름과 동일해야 합니다.
생성자는 인스턴스 생성시 한번만 호출되는 특징을 가지고 있습니다.
class Person {
String name;
int age;
String sex;
// 생성자와 매개변수
Person(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
}
ㅤ
생성자를 명시적으로 선언하지 않는 경우 자동적으로 Default 생성자를 생성합니다.
class Person {
String name;
int age;
String sex;
// 컴파일러가 default 생성자를 주입한다.
}
ㅤ
클래스의 생성자를 통해 인스턴스를 생성할 수 있습니다.
class Person {
String name;
int age;
String sex;
//생성자와 매개변수
Person(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
}
Person person = new Person("이름", 1, "female");
ㅤ
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는 매개 변수를 지칭한다.
}
}
ㅤ
코드 작성(Person.java)
class Person {
String name;
Person(String name) {
this.name = name;
}
}
코드 작성(Main.java)
public class Main {
public static void main(String[] args) {
Person person = new Person("김철수");
System.out.println(person.name);
}
}
출력
김철수
ㅤ
코드 작성(Person.java)
class Person {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
}
코드 작성(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);
}
}
출력
김철수
20
ㅤ
코드 작성(Person.java)
class Person {
String personName;
int personAge;
String personGender;
Person(String name, int age, String gender) {
personName = name;
personAge = age;
personGender = gender;
}
}
코드 작성(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);
}
}
출력
김철수
20
male
생성자를 생성하고 추가로 person 이라는 이름을 지정해줘서 오류가 났던거였습니다ㅋ큐ㅠㅠ. 감사합니다. 코드 상으로는 크게 문제가 없다니 다행이에요
안녕하세요. 코드라떼입니다 :) 확인해 주셔서 감사합니다.
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; } } 이렇게 작성했는데 뭐가 잘못된건지 잘 모르겠네요..
안녕하세요. 코드라떼입니다 :) 코드상으로는 잘못된 것이 없어 보이는데 어떤 문제를 겪고 있는지 알 수 있을까요?
실습해보세요의 코드를 작성해보세요.