01.생성자(Constructor)
인스턴스(객체)가 생성될 때 호출되는 인스턴트 초기화 메서드이다. ( newClass(); )
생성자 문법
•
기본 생성자 : 컴파일러가 제공하는 기본 생성자
◦
매개변수, 함수 내부 코드 없음.
•
이외 사용자 지정 생성자 : 사용자가 생성자를 미리 만들어준 경우 컴파일러가 기본 생성자를 생성하지 않는다따라서 이때는 프로그래머가 직접 기본 생성자를 만들어 줘야한다.
class Practice {
// 기본 생성자
public 클래스명 (){
// 매개변수가 없다. 모든 값을 받을 수 있음
}
// 매개변수 존재
public 클래스명 (타입 변수명, 타입 변수명...) {
//생성자 초기화
this.필드명 = 변수명;
.....
}
}
Plain Text
복사
특징
•
생성자명은 클래스명과 동일하다.
•
생성자 코드를 정의하지 않을 경우 default 생성자 값으로 자동 생성된다.
•
생성자의 접근제한자가 public 이외일 경우 인스턴스 생성 초기화에 제한을 받을 수 있다.
사용
⇒ 생성자는 자료형의 순서 혹은 자료형으로 찾는다.
//필드
private int speed;
private String wheel;
//생성자
//1. int 다음 String
public Car(int speed, String wheel) {
this.speed = speed;
this.wheel = wheel;
}
//2. String 다음 int
public Car(String wheel, int speed) {
this.speed = speed;
this.wheel = wheel;
}
Plain Text
복사
예제 1번 ) 위의 첫번째 생성자
public Car(int speed, String wheel) {
this.speed = speed;
this.wheel = wheel;
}
Car c = new Car("사일룬", 30); //String, int => ❗️에러 발생
Car c = new Car(30, "사일룬"); //int, String => 🟢 인스턴스 생성
Plain Text
복사
03.코드 작성 순서
•
클래스 코드 작성은 관례적으로 아래와 같은 순서로 작성하며
주석을 달아 구분할 경우 코드가 많아졌을 때 가독성이 높아집니다.
public class Clock {
//필드 : 필드는 항상 최상단에 위치
//생성자
//getter, setter
//일반 메서드
}
Plain Text
복사
package edu.lion.car;
public class Clock {
// 필드
private int hh;
private int mm;
// 생성자
public Clock() {
}
public Clock(int hh, int mm) {
this.hh = hh;
this.mm = mm;
}
// getter , setter
// 필드를 통한 자동완성 기능이 있으니 활용하는 것 추천
// 안에 코드 변경도 가능하나 ,기본적인 getter setter는 디폴트 값으로 사용하고
// 필요한 메서드를 생성해서 사용하거나 호출하는 방법으로 고려해볼 것
public int getHh() {
return hh;
}
public void setHh(int hh) {
this.hh = hh;
}
public int getMm() {
return mm;
}
public void setMm(int mm) {
this.mm = mm;
}
// 일반 메서드
public void view() {
System.out.println("회고 11팀 화이팅!");
}
}
Plain Text
복사