[Java] 객체와 클래스 3 : 생성자

2023. 2. 6. 13:59·Java/Base
728x90
728x90

#  관련 포스팅

  1. 객체 지향 패러다임과 멤버 변수 : https://young0105.tistory.com/13

  2. 메서드 : https://young0105.tistory.com/28

  3. (현재 글) 생성자 : https://young0105.tistory.com/29

 


생성자 (Constructor)

  - 객체를 생성할 때, 객체의 형태에 대한 강제성을 부여하는 것

  - 객체를 생성하기 위해 'new' 키워드와 함께 호출됨

      → 객체가 메모리에 로드될 때 가장 먼저 수행되는 코드

  - 객체가 생성될 때 변수/상수를 초기화하는 기능의 코드가 포함됨

  - 생성자 내에서 메서드 호출 가능

  - 클래스에는 반드시 적어도 하나 이상의 생성자가 존재함

  - 반환 값이 없음 → 선언부에 반환 자료형이 없음

  - 생성자 이름 == 클래스 이름

  - 생성자 오버로딩 (overloading) ★

      : 매개변수의 조합을 다르게 받는, 이름이 동일한 여러 개의 생성자를 만들어 두는 기법

#  멤버 변수의 값을 초기화하지 않은 경우

  - 자동으로 컴파일러가 기본값으로 초기화해줌

 

자료형 int double boolean String 참조 자료형
기본값 0 0.0 false null null

 

 


기본 생성자 (Default constructor)

  - 매개변수가 없는 생성자

  - 클래스 내부에 생성자가 없을 경우, 컴파일러가 자동으로 생성해두는 생성자

      → 사용자 정의 생성자가 하나라도 있다면, 기본 생성자는 자동으로 만들어지지 않음

 

// 클래스 설계 파일 //

public class 클래스명 {

    자료형 멤버변수1;
    자료형 멤버변수2;
    ...

    // 기본 생성자
    public 클래스명() {}

}

// 메인 함수 파일 //

public class ~ {
    public static void main(String[] args) {

        // 생성자 호출
        클래스명 참조변수 = new 클래스명();

    }
}

 

사용자 정의 생성자

// 클래스 설계 파일 //

public class 클래스명 {

    자료형 멤버변수1;
    ...

    // 사용자 정의 생성자
    public 클래스명(자료형 매개변수1, ...) {
    
        // 매개변수를 이용한 멤버변수 초기화
        this.멤버변수1 = 매개변수1;
        ...
        // 값을 대입하여 멤버변수 초기화
        this.멤버변수n = 값;
        
    }

}

// 메인 함수 파일 //

public class ~ {
    public static void main(String[] args) {

        // 생성자 호출
        클래스명 참조변수 = new 클래스명(매개변수a, ...);

    }
}

 

 


기타 메모

- 객체 자기 자신의 메모리를 가리키는 this
    → this를 이용하면 멤버변수와 매개변수의 이름이 동일해도 구분할 수 있음

 

320x100
반응형
저작자표시 비영리 변경금지 (새창열림)

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

[Java] 배열 - 도서 정보 등록·조회·삭제 프로그램 구현  (0) 2023.02.08
[Java] 접근 제어 지시자와 get(), set() 메서드  (0) 2023.02.07
[Java] 객체와 클래스 2 : 메서드 (멤버 함수)  (0) 2023.02.06
[Java] 스택 메모리와 힙 메모리  (0) 2023.02.06
[Java] 함수  (0) 2023.02.04
'Java/Base' 카테고리의 다른 글
  • [Java] 배열 - 도서 정보 등록·조회·삭제 프로그램 구현
  • [Java] 접근 제어 지시자와 get(), set() 메서드
  • [Java] 객체와 클래스 2 : 메서드 (멤버 함수)
  • [Java] 스택 메모리와 힙 메모리
스응
스응
    반응형
    250x250
  • 스응
    이서영의 개발 블로그
    스응
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (385)
      • Java (134)
        • Base (54)
        • Spring Boot (37)
        • JSP (16)
        • Swing (GUI) (20)
        • Design Pattern (7)
      • C# (13)
      • PHP (18)
      • SQL (27)
      • Vue.js (9)
      • Tailwind CSS (4)
      • TypeScript (7)
      • HTML & CSS (27)
      • JavaScript (26)
      • jQuery (10)
      • Android (3)
      • - - - - - - - - - - - - - - (0)
      • Hotkeys (5)
      • CS (30)
      • IT Notes (13)
      • Error Notes (17)
      • Team Project (24)
        • Airlines Web Project (12)
        • University Web Project (6)
        • Strikers 1945 GUI Project (6)
      • My Project (18)
        • Library Web Project (8)
        • Pet Shopping Mall GUI Project (10)
      • etc. (0)
  • 블로그 메뉴

    • Home
    • Write
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    HTML
    Wordpress
    SpringBoot
    jQuery
    SQL
    SEO
    오블완
    Android
    Swing
    zapier
    CSS
    http
    jsp
    SWAGGER
    errorNote
    Codeigniter
    typeScript
    cs
    git
    php
    Hotkeys
    면접
    티스토리챌린지
    개발일지
    java
    js
    tailwindcss
    vuejs
    C#
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
스응
[Java] 객체와 클래스 3 : 생성자
상단으로

티스토리툴바