자바(Java) 프로그래밍, 클래스와 객체 Part 2
- 개발 스터디/Java
- 2024. 4. 13.
반응형
728x90
반응형
1. 생성자
package constructor;
public class Person {
String name;
float height;
float weight;
}
package constructor;
public class PersonTest {
public static void main(String[] args) {
Person personLess = new Person(); // Person()을 생성자라고함
}
}
1-1. 디폴트 생성자
생성자는 클래스를 생성할 때만 호출한다.
생성자 이름은 클래스 이름과 같고, 생성자는 반환 값이 없다.
그런데 위 Person 클래스 예제를 보면 Person() 생성자가 따로 없다.
왜냐하면 생성자가 없는 클래스 파일을 컴파일 할 때
자바 컴파일러에서 자동으로 생성자를 만들어 준다.
이렇게 자동으로 만들어 주는 생성자를 '디폴트 생성자'라고 한다.
디폴트 생성자 예제
package constructor;
public class Person {
String name;
float height;
float weight;
public Person() { //자바 컴파일러가 자동으로 제공하는 디폴트 생성자
}
}
1-2. 생성자 만들기
생성자는 주로 멤버 변수에 대한 값들을 매개변수로 받아서
인스턴스가 생성될 때 멤버 변수 값들을 초기화 하는 역할을 한다.
즉, 인스턴스가 생성됨과 동시에 멤버 변수 값을 지정하고
인스턴스를 초기화하기 위해 생성자를 직접 구현하여 사용한다.
이름을 매개변수로 받는 생성자 만들기
package constructor;
public class Person {
String name;
float height;
float weight;
public Person(String pname) { //사람 이름을 매개변수로 입력받아
name = pname; //Person 클래스를 생성하는 생성자
}
}
1-3. 생성자 오버로드
클래스에 생성자가 두 개 이상 제공되는 경우를 생성자 오버로드라고 한다.
필요에따라 매개변수가 다른 생성자를 여러 개 만들 수 있다.
클래스에 생성자를 여러 개 제공하면 이 클래스를 사용하는 코드에서는
원하는 생성자를 선택해 사용할 수 있다.
예제
package constructor;
public class Person {
String name;
float height;
float weight;
public Person() { } //디폴트 생성
public Person(String pname) {
name = pname; //이름을 매개변수로 받는 생성자
}
public Person(String pname, float pheight, float pweight) {
name = pname;
height = pheight; //이름, 키, 몸무게를 매개변수로 받는 생성자
weight = pweight;
}
}
package constructor;
public class PersonTest {
public static void main(String[] args) {
Person personLee = new Person();
personLee.name = "이순신";
personLee.height = 180.7F; //디폴트 생성자로 클래스를 생성한 후
personLee.weight = 78.0F; //인스턴스 변수 값을 따로 초기
Person personKim = new Person("김유신", 175, 75); //인스턴스 변수 초기화와 동시에 클래스 생성
}
}
728x90
반응형
'개발 스터디 > Java' 카테고리의 다른 글
자바(Java) 프로그래밍, 클래스와 객체 Part 4 (1) | 2024.04.14 |
---|---|
자바(Java) 프로그래밍, 클래스와 객체 Part 3 (0) | 2024.04.13 |
자바(Java) 프로그래밍, 클래스와 객체 Part. 1 (0) | 2024.04.13 |
자바(Java) 프로그래밍, 반복문 - while문, do while문, for문 (0) | 2024.04.08 |
자바(Java) 프로그래밍 조건문 - switch case문 (0) | 2024.04.07 |