[Java] 기초정리 13. 생성자 - 생성자 선언, this

2024. 8. 9. 21:49·Backend/Java

생성자란? 클래스의 객체(인스턴스)가 생성될 때 자동으로 호출되는 메소드이다.

 

생성자는 메소드와 똑같이 호출 시 내부를 수행한다.

하지만 객체를 생성해주고 호출 시 new 키워드와 함께 쓰이며

생성된 객체의 주소값을 자동으로 리턴하기 때문에 메소드라고 부르지 않는다.

(우리가 원하는 값으로 리턴을 할 수 없다.)


생성자 선언

클래스를 선언하면 기본적으로 생성자 하나를 만들어주고 우리 눈에는 보이지 않는다.

이러한 생성자를 기본 생성자라고 하며,

만약 직접 생성자를 선언하게 되면 기존에 있던 기본 생성자는 사라지게 된다.

그래서 기본 생성자가 필요할 경우 기본생성자도 함께 적어줘야 한다.

//생성자 (클래스 안에 생성된다)->(Car 클래스 안에 있음)
public Car(String model, String color, int price){
	this.model = model;
	this.color = color;
	this.price = price;
}

Car mycar = new Car("Ferrari", "Red", 70000);

생성자의 목적

  1. 클래스의 필드를 똑같이 복사해서 메모리에 할당하고, 할당된 필드의 주소값을 돌려받기 위함 / 객체화의 목적
  2. 호출 시 내부의 내용을 수행하기 위함 / 초기화의 목적

this

◆ 객체 구별용 변수

 

클래스 선언시 내부적으로 선언되어 생성된다.

클래스 영역에서 한 번의 메소드 선언으로 여러 객체를 다루어야 한다.

만약 메소드 내에서 해당 객체의 필드를 사용하고자 할 때 어떤 객체의 필드인지를 알수 없다.

따라서 객체에 마침표를 찍고 필드에 접근하거나 어떤 객체를 생성중일때는 현재 접근한 그 객체를 this 변수가 받는다.

 

결과적으로 클래스 선언시 내부에서 this.필드명으로 접근하면 여러 객체를 하나의 메소드에서 구분하여 다룰 수 있게 된다. 

'Backend > Java' 카테고리의 다른 글

[Java] 기초정리 13. 클래스 배열(객체 배열) - 클래스 배열 선언, 사용  (0) 2024.08.20
[Java] 기초정리 12. 다형성(Polymorphism) - 오버로딩, 오버라이딩  (0) 2024.08.10
[Java] 기초정리 12. 클래스 - 클래스 선언, 사용  (0) 2024.08.08
[Java] 기초정리 11. 메소드 - 메소드 선언, 사용  (0) 2024.08.07
[Java] 기초정리 10. 문자열 메소드 - split() / indexOf() / charAt() / replace() / substring() / substring() / trim() / length()  (0) 2024.08.06
'Backend/Java' 카테고리의 다른 글
  • [Java] 기초정리 13. 클래스 배열(객체 배열) - 클래스 배열 선언, 사용
  • [Java] 기초정리 12. 다형성(Polymorphism) - 오버로딩, 오버라이딩
  • [Java] 기초정리 12. 클래스 - 클래스 선언, 사용
  • [Java] 기초정리 11. 메소드 - 메소드 선언, 사용
찌이e
찌이e
  • 찌이e
    찌이의 개발일기
    찌이e
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Frontend
        • React
      • Backend
        • Java
        • Java - Coding Test
        • Spring
        • PHP
      • Framework
        • 그누보드
        • 워드프레스
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    연산자 순서
    print메소드
    next메소드
    연산자순위
    강제형변환
    JAVA생성자
    클래스배열
    Java입력
    java출력
    java
    java문자열메소드
    java배열
    java연산자
    입력메소드
    math.abs
    프로그래머스
    java조건문
    리액트설치
    클래스상속
    출력메소드
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
찌이e
[Java] 기초정리 13. 생성자 - 생성자 선언, this
상단으로

티스토리툴바