코이_CO2
LIVING IS DYING
코이_CO2
전체 방문자
오늘
어제
  • 분류 전체보기 (45)
    • TIL ⚓️ (4)
      • OT주차 (1)
      • 1주차_풀스택 미니 프로젝트 (0)
      • 1주차_언어 기초(Java) (0)
      • 2주차_프로그래밍 기초 (1)
      • 3주차_주특기 입문(Spring) (0)
      • 4주차_주특기 숙련(Spring) (2)
    • WIL ⚓️ (0)
      • OT주차 (0)
      • 1주차_언어 기초(Java) (0)
      • 2주차_프로그래밍 기초 (0)
      • 3주차_주특기 입문(Spring) (0)
      • 4주차_주특기 숙련(Spring) (0)
    • Java의 정석 📖 (4)
      • Chapter 1. 자바를 시작하기 전에 (3)
      • Chapter 2. 변수 (0)
      • Chapter 3. 연산자 (0)
      • Chapter 4. 조건문과 반복문 (1)
    • Programmers (7)
      • Lv. 1 (7)
    • 혼자 공부하는 자바 📖 (8)
      • Chapter 05 참조 타입 (0)
      • Chapter 06 클래스 (3)
      • Chapter 07 상속 (1)
      • Chapter 08 인터페이스 (1)
      • Chapter 09 중첩 클래스 & 인터페이스 (0)
      • Chapter 10 예외 처리 (1)
      • Chapter 12 스레드 (1)
    • Java (2)
    • Spring (1)
    • Python (2)
    • Mysql (4)
    • Machine Learning (6)
      • 추측 통계 (2)
    • Data Analysis (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 배열
  • 개발일지
  • 스프링
  • 개발자
  • HTML
  • TIL
  • 부트스트랩
  • DTO
  • spring
  • LV1
  • 웹개발 종합반
  • 주특기 심화주차
  • 혼자 공부하는 자바
  • java
  • 스터디
  • 프로그래머스
  • CRUD
  • sql
  • 파이썬
  • 코딩
  • 항해99
  • jwt
  • programmers
  • PYTHON
  • TIL/WIL
  • 게시판 프로젝트
  • Spring Security
  • 혼자공부하는자바
  • 자바
  • 하루기록

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
코이_CO2

LIVING IS DYING

혼자 공부하는 자바 📖/Chapter 06 클래스

Chapter 06-3(2) 생성자 오버로딩, 다른 생성자 호출: this()

2022. 11. 28. 10:58

생성자 오버로딩 (overloading) : 매개 변수를 달리하는 생성자를 여러 개 선언하는 것

- 다양한 데이터들을 이용하여 객체를 초기화하려면 생성자도 다양화될 필요가 있다

- 제공 데이터가 없을 경우, 기본 생성자로 객체를 생성할 수 있어야 한다 (예를 들어 Car 객체)

- model, color 등의 데이터가 제공될 경우에도 Car 객체를 생성할 수 있어야 한다

- 매개 변수의 타입과 개수, 선언된 순서가 똑같을 경우 매개 변수의 이름만 바꾸는 것은 생성자 오버로딩이 아님

// 오버로딩의 올바른 예
public class Car {
    Car() {}
    Car(String model) {}
    Car(String model, String color) {}
    Car(String model, String color, int maxSpeed) {}
}
// 오버로딩의 잘못된 예
Car(String model, String color) {}
Car(String color, String model) {}

 

생성자가 오버로딩되어 있을 경우,

new 연산자로 생성자를 호출할 때 제공되는 매개값 타입과 수에 의해 호출될 생성자 결정

// 다양한 방법으로 생성한 Car 객체
Car car1 = new Car();  // 기본 생성자로 객체 생성
Car car2 = new Car("그랜저");  // Car(String model) 생성자로 객체 생성
Car car3 = new Car("그런저", "흰색");  // Car(String model, String color) 생성자로 객체 생성
Car car4 = new Car("그랜저", "흰색", 300);  // Car(String model, String color, int maxSpeed)생성자로 객체 생성

 

this()

생성자 내에서 다른 생성자를 호출하는 코드로 반드시 생성자의 첫 줄에서만 허용된다.

매가값은 호출되는 생성자의 매개 변수에 맞게 제공해야 한다

 

https://school.programmers.co.kr/learn/courses/5/lessons/171

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

https://data-make.tistory.com/202

 

[JAVA] this()의 의미와 사용

#. this() > this 예약어 - 생성자나 메서드의 매개변수 이름이 객체 변수의 이름과 같은 경우 - 객체 변수 이름 앞에 this를 사용해서 구별 - 멤버 변수와 매개변수 이름을 구분하여 프로그램의 가독

data-make.tistory.com

 

'혼자 공부하는 자바 📖 > Chapter 06 클래스' 카테고리의 다른 글

Chapter 06-6(2) 패키지와 접근 제한자  (0) 2022.12.05
Chapter 06-6(1) 패키지와 접근 제한자  (0) 2022.12.02
    '혼자 공부하는 자바 📖/Chapter 06 클래스' 카테고리의 다른 글
    • Chapter 06-6(2) 패키지와 접근 제한자
    • Chapter 06-6(1) 패키지와 접근 제한자
    코이_CO2
    코이_CO2
    나에게 찾아오는 뻔한 매일을 언제나 값지게 여길 줄 아는 내가 되기를

    티스토리툴바