///////
Search

생성자

태그
장서윤
자바기초
작성일
2022/09/23

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
복사