생성자

han.user();·2023년 2월 27일
0
post-thumbnail

기본개념예시

int 야채;
야채 =5;

-------------

int 야채 = 5;

위 두 코드는 같지만 아래 코드가 훨씬 간결하고 입력하기 쉽다.

생성자도 마찬가지.

참치선물세트 참01= new 참치선물세트();01.일반 = 12;01.야채 = 3;01.고추 = 3;

-----------------------------------------

참치선물세트 참01= new 참치선물세트(12,3,3);

하지만 이렇게 입력하기 위해서는 우선 생성자를 생성해야한다.

//생성자 생성 전
class 참치선물세트{
int 일반;
int 야채;
int 고추;
}

-----------------
생성자 생성
-----------------
class 참치선물세트{
int 일반;
int 야채;
int 고추;

  참치선물세트(int x, int y, int z){  //생성자#1
    일반 = x;
    야채 = y;
    고추 = z;
  }
  
  //만약 일반참치로만 구성된 세트라면 이렇게도 가능
  참치선물세트(int x){  //생성자#2
  	일반 = x;
    야채 = 0;
    고추 = 0;
  }
}

위와 같이 생성자를 생성하고 나면, 아래와 같이 적용할 수 있는 것이다.

참치선물세트 참01= new 참치선물세트(12,3,3);

(DO it! 첫 코딩 - 생성자편)

그림으로 표현하면 위와 같다
생성자를 만들 때 각 변수(참치종류)에 위치값을 지정해주고(x,y,z)
나중에 인스턴스 생성할 때 괄호안에 그 위치값에 필요한 값만큼 기입하면 된다.


클래스와 인스턴스의 구분

Class는 이름의 첫글자를 대문자로 시작
Instance는 이름의 첫글자를 소문자로 시작

class TunaCanGiftSet{
	int normalTuna;
    int vegTUNA;
    int spicyTuna;
    
    TunaCanGiftSet(int x, int y, int z){
    	normalTuna = x;
    	vegTuna = y;
    	spicyTuna = z;
    }
    
    TunaCanGiftSet(int x){
    	normalTuna = x;
    	vegTuna = 0;
    	spicyTuna = 0;
  }
}

public class Main{
 public static void main(String[] args){
   TunaCanGiftSet tunaSet01 = new TunaCanGiftSet(12,3,3);
   
   //이하생략
   
  }
}

GPT 버전

Java에서 생성자(Constructor)는 클래스를 인스턴스화할 때 호출되는 특별한 메소드입니다. 생성자는 클래스의 인스턴스를 초기화하고 필드를 설정하는 데 사용됩니다.

아래는 간단한 예제입니다:

public class Person {
  private String name;
  private int age;

  // 생성자
  public Person(String name, int age) {
    this.name = name;
    this.age = age;
  }

  // getter 메소드
  public String getName() {
    return name;
  }

  public int getAge() {
    return age;
  }
}

위의 코드에서 Person 클래스는 name과 age라는 두 개의 필드를 갖고 있습니다. 생성자는 Person 클래스를 초기화하는 데 사용됩니다. 생성자는 public Person(String name, int age) 형태이며, name과 age를 인수로 받습니다. 생성자의 역할은 name과 age를 인스턴스 변수로 설정하는 것입니다.

예를 들어, 다음과 같이 Person 클래스를 인스턴스화할 수 있습니다.

Person person = new Person("John", 30);

위의 코드는 Person 클래스의 인스턴스를 생성하고 name을 "John"으로, age를 30으로 초기화합니다. 이후 getName()과 getAge() 메소드를 호출하여 해당 인스턴스의 필드 값을 가져올 수 있습니다.

profile
I'm still hungry.

0개의 댓글