SMALL
1. 기본 생성자
- 생성자: 객체 생성 시 호출되어, 변수들을 초기화하는 메서드
(1) 기본 생성자의 구현부와 호출부
- 구현부 : 클래스명() {}
- 호출부 : new 클래스명();
(2) 예제 1
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
Aclass a = new Aclass();
}
}
class Aclass{
// 기본생성자 (default 생성자)
public Aclass(){
System.out.println("Aclass 기본생성자()");
}
}
- Aclass 호출 시, new Aclass();
(3) 예제 2
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
CellPhone myPhone = new CellPhone();
System.out.println(myPhone.model);
}
}
class CellPhone{
String model = "Galaxy 8";
String color = "blue";
int capacity = 60;
CellPhone() {
System.out.println("model: " + model);
System.out.println("color: " + color);
System.out.println("capacity: " +capacity);
}
}
2. 매개변수 생성자
(1) 기본 생성자의 구현부와 호출부
- 구현부: 클래스형(자료형 변수명) {}
- 호출부: 클래스명(값);
(2) 매개변수 생성자에서 디폴트 생성자
- 매개변수 생성자 구현 시, 디폴트 생성자가 없으면 디폴트 생성자 호출 불가!
=> 디폴트 생성자를 따로 만들어 줘야함.
- 기본 생성자에서는 디폴트 생성자 자동 생성
(3) this 키워드
- 현재 객체를 지칭하기 위한 키워드
- 매개변수의 변수명과 객체 내 변수명이 같을 때, this를 사용해서 구분
(4) 생성자 오버로딩
- 여러 개의 생성자 중복 정의
- 예제 1의 경우, 디폴트 생성자와 매개변수 생성자의 클래스 명이 동일 -> 즉, 오버로딩됨.
(5) 예제 1
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
Bclass b1 = new Bclass("가길동");
System.out.println(b1.name);
Bclass b = new Bclass();
System.out.println(b);
}
}
class Bclass{
String name;
Bclass() {} // 디폴트 생성자
Bclass(String name) {
System.out.println("Bclass의 매개변수 생성자()");
this.name = name;
}
}
(6) 예제 2
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
Iphone myPhone = new Iphone();
Iphone myPhone2 = new Iphone("Iphone 14", "yellow", 128);
myPhone.info();
myPhone2.info();
System.out.println(myPhone.capacity);
System.out.println(myPhone2.capacity);
}
}
class Iphone{
String model;
String color;
int capacity;
Iphone() {}; // 디폴트 생성자
Iphone(String model, String color, int capacity) {
this.model = model;
this.color = color;
this.capacity = capacity;
}
void info() {
System.out.println("model: " + model);
System.out.println("color: " + color);
System.out.println("capacity: " + capacity);
}
}
728x90
'JAVA' 카테고리의 다른 글
[JAVA2] 동물키우기 게임 만들기 (0) | 2023.07.16 |
---|---|
[멘토씨리즈] 22강 - 객체 배열 생성 (0) | 2023.05.26 |
[멘토씨리즈] 16강 - 카페 주문 프로그램 제작 (0) | 2023.05.24 |
[멘토씨리즈 JAVA] 13강 배열 - 로또번호 생성기 (2) | 2023.05.21 |
[JAVA] 모각코 활동 후기 :) (0) | 2021.08.30 |
댓글