본문 바로가기
자바(Java)

자바 입문하기11 - 생성자, this

by codeyaki 2022. 1. 11.
반응형

해당 강의를 보고 정리한 것입니다.

https://programmers.co.kr/learn/courses/5

 

자바 입문

자바 입문 가장 널리 쓰이는 프로그래밍 언어 Java로 프로그래밍의 기초를 다져보세요. 이 강의의 내용을 책으로 만나고 싶으시면 여기를 눌러 책 정보를 확인하세요. 강의를 다 들었는데, 지금

programmers.co.kr


생성자

: 모든 클래스는 인스턴스화 될때 생성자를 사용한다.

 

생성자 특징

  • 생성자는 리턴타입이 없음.
  • 생성자를 프로그래머가 만들지 않으면 매개변수가 없는 생성자가 자동으로 만들어진다.
  • 매개변수가 없는 생성자를 기본생성자라고 한다.
  • 생성자를 하나라도 만들었다면 기본생성자는 자동으로 만들어지지 않는다.

생성자의 역할

  • 생성자가 하는 일은 객체가 될 때 필드를 초기화 하는 역할을 수행.
  • 자동차가 객체가 될때 반드시 이름을 가지도록 하려면, Car클래스를 다음과 같이 만들면 된다.
    public class Car {
    	String name;
    	int number;
    	
    	public Car(String n) { //생성자
    		name = n;
    	}
    }​
  • 객체 생성&사용 방법
    
    public class CarExam {
    
    	public static void main(String[] args) {
    		Car c1 = new Car("소방차");
    		Car c2 = new Car("구급차");
    		 
    	    c1.number = 1234;   // c1.number = 1234란 c1이 참조하는 객체의 number를 1234 로 설정 
    	    c2.number = 1004;  //c2가 가리키는 객체의 number를 1004로 설정
    
    	    System.out.println(c1.name);  //콘솔에 c1이 참조하는 객체의 name 을 출력합니다.
    	    //소방차 출력
    	    System.out.println(c1.number); //콘솔에 c1이 참조하는 객체의 number 를 출력합니다.
    	    //1234 출력 
    
    	    String name = c2.name;   //c2가 참조하는 객체의 name 을 String 타입 변수 name 도 참조
    	}
    
    }
    - Car클래스는 기본생성자를 가지지 않음. 그러므로 기본생성자(Car())로 Car객체를 생성할 수 없다.

this

: 현재 객체, 자기 자신을 나타낸다.

public class Car {
	String name;
	int number;
	
	public Car(String name) { //생성자
		this.name = name;
	}
}
  • this를 써주지 않으면 name=name이라는 코드는 매개변수의 name의 값을 매겨변수 name에 대입하라는 의미.
  • 즉, 필드Car는 바뀌지 않음. 그러므로 this를 사용하여 해당 클래스의 필드 name이라는것을 알려줌
반응형