ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java | Constructor 생성자
    JAVA/JAVA 2020. 1. 22. 17:26

    Constructor 생성자

    객체 생성시 멤버 변수의 초기화 및 객체 복사의 역할을 담당함


    polymorphism 다형성

    객체가 다양한 형태로 표현될 수 있다는 개념으로,
    같은 메서드를 호출해도 다양한 결과를 도출할 수 있음

    '틀'을 가진 객체를 구체적인 객체로 표현 가능하다는 뜻

    생성자와 연관이 있음


    개요

    1. 객체가 생성될 때, 가장 처음 자동으로 호출되는 특수한 메소드
    2. 생성자명은 클래스명과 동일하게 작성
      ↔ TypeScript : constructor
    3. 메서드에 return형(반환값 자료형)을 명시하지 않음
      void도 작성하지 않음

    생성자 / Set() Method 비교

    공통점

    • 멤버 변수에 데이터를 저장

    차이점

    • 생성자 : 멤버 변수 초기화시, 여러 개의 값을 한꺼번에 저장하는 경우 사용
      ex) 회원가입
    • set() 메소드 : 저장되어 있는 값을 중간에 수정하는 경우에 사용
      ex) 회원정보 수정 : 주소, 이메일만 수정

    Constructor 생성자

    매개변수나 구현 코드가 존재하는 생성자

    프로그래머가 임의로 작성하며, 객체 생성시 초기화할 멤버 변수를 설정함


    Default Constructor 기본 생성자

    매개변수와 구현 코드가 존재하지 않는 생성자

    생성자를 작성하지 않은 클래스는 클래스 파일을 컴파일할 때
    자바 컴파일러가 자동으로 생성자를 만들어 줌


    형식

    // 생성자 작성 형식, 생성자명은 클래스명과 동일하게 지정해야 함
    생성자(매개변수,,,,){ Java Code; }
    
    // 기본 생성자 작성 형식, 자동으로 생성되지만 클래스 안에 작성할 수도 있음
    생성자(){}
    
    // 생성자 호출 형식, 'new 생성자()'가 기본 생성자임
    클래스명 객체명 = new 생성자();

    사용례

    class Person {
    
        // 멤버 변수
        private String name; // 이름
        private int age; // 나이
    
        // 생성자
        Person(){
            name="홍길동";
            age=23;
        }
    
        // set() 메소드
        public void setName(String n) {
            name = n;
        }
        public void setAge(int a) {
            if (a > 0) {
                age = a;
            } else {
                System.out.println("나이의 값은 음수일 수 없습니다!");
                age = 23;     //    기본값 설정
            }
        }
    
        // get() 메소드
        public String getName() {return name;}
        public int getAge() {return age;}
    
        // 정보 출력 메소드
        void display() {
            System.out.println("이름: " + name + ", 나이: " + age);
        }
    }
    
    public class PersonHandling {
    
        public static void main(String[] args) {
    
            Person p = new Person();    
             // Person 클래스의 객체 p를 생성하면서 생성자 Person 호출
            p.display();    // 이름: 홍길동, 나이: 23
    
            p.setAge(33);
            p.setName("히히히");
            p.display();    // 이름: 히히히, 나이: 33
        }
    }

    객체 생성시 멤버 변수의 초기화 및 객체 복사의 역할을 담당하는 생성자에 대해 알아보았습니다.

    생성자는 굉장히 다양한 방면으로 활용이 가능하다고 하니 여러가지 방법으로 연습해 보면 좋을 것 같습니다.

     

    댓글

Designed by Tistory.