본문 바로가기
JAVA-Spring/캡슐화

JAVA 자바 [ 객체 지향 프로그래밍 ] 생성자

by Super Santj 2019. 7. 16.

1. JAVA 자바 생성자의 개요 _

객체가 생성 될때 맨 처음 자동으로 호출되는 특수한 메소드

예를 들자면, 신용카드가 있다고 가정을 해보자. 신용카드로 결제를 할때 자기 휴대폰으로 결제 내역이 전송이 된다.

이러한 문자 발송 시스템은 내가 결제를 하였을때만 문자가 날라오게되어있는데 이러한 시스템과 동일한 의미인것이다.

즉 전제조건이 있는 상황, 객체가 생성이 되야만 생성자를 호출할수가있고, 객체가 생성되지 않은 상태에서는 생성자를 호출할수 없는 전제조건이 있는 메소드 이다.

객체명.일반메소드명(~) ( X )

(=데이터를 저장시키기 위해서 공간을 만들때)

2. 형식 _

생성자 이름(=클래스 이름)==> Typescript => constructor 고정

앞에 반환형을 쓰지 않는다. -> void 를 의미하는것이 아니다.

접근 지정자를 사용하여도 된다. (public) 생성자 (=클래스명)(){}

매개변수가 없고 내용도 없는메소드를 기본 생성자라고 한다. 예를들면 아래와 같다.

Car.java -> car( ){ }, ThreeTest.java -> ThreeTest( ){ }

3. 생성자의 사용 목적

생성자는 객체 생성과 연관이 있다.

그렇다면 객체 생성은 무엇일까? 객체생성은 데이터를 저장할수있는 공간을 만드는 것이 객체 생성이다.

객체 생성후 다음으로 해야할 작업은 데이터를 입력하는 것이고, 이때 공간이 만들어진 후 값을 맨 처음으로 저장할 목적으로 사용되는 메소드 이다. 이러한 행위를 다른말로 "멤버변수의 초기화" 로도 이야기 한다.

 

사용 예제 _

만약 아파트에 거주하는 사람들의 정보를 추상화, 캡슐화, 생성자를 통하여 JAVA를 이용 이클립스에 저장한다면

1. 멤버변수를 지정하여준다. 이름, 나이

멤버변수 정의

2. 캡슐화를 통해 Setter 값과, Getter 값을 입력하여준다.

캡슐화의 Setter, Getter 값 입력

3. 단순반복적인 일을 수행하기 위해 정보 출력에 관한 JAVA 자바의 메소드를 작성하여준다.

정보 출력 메소드

4. 다른 클래스(PersonHandling 이라는) 에 기본 생성자를 호출할수있는 구문을 작성

5. 설계도면(상위) 클래스에서 기본 생성자를 호출 해보자.

생성자 확인

출력 구문을 통하여 Person이라는 생성자가 만들어지고 호출이 된다는 것을 확인할수가 있다. 즉 이러한 행위는 멤버변수의 초기화를 위해 사용되는것이다.

** 중요 **

자바에서 데이터를 저장시키는 방법

1. 캡슐화를 통한 Setter Method를 통해서 값을 저장 하였다. (올바른 값만 선별해서)

2. 생성자를 통해서 값을 저장 시킬수도 있다.

3. 일반적인 방법으로는 {객체명.멤버변수=값} 으로 데이터를 저장할수가 있다.

위 세가지 방법중 3번 방법은 가장 일반적인 방법이지만, 옮바른 값이 아닌 현실성 없는 값을 입력할수도있는 확율도 존재하기때문에 3번방법은 주요적으로 사용하지는 않고, 1번 또는 2번의 방법을 통해 데이터를 입력하곤 하는것이다.

그렇다면 1번과 2번의 차이는 무엇일까?

    차이점 _

데이터를 저장하는데에 있어 차이가 있는데, 새로운 값이 들어오기 전까지 그대로 유지가 된다. 여기서

생성자는 객체 호출이 될때만 딱 한번 호출이 가능하다. 즉 한꺼번에 많은 양의 데이터를 초기화 할때 사용한다. 오라클로 비유를 하자면 insert into 테이블 values(,,,,)와 같은 맥락이다. 보통 "회원 가입" 에서 주로 사용된다

캡슐화는 중간에 데이터를 수정할때 사용하게된다. 오라클로 비유를 하자면 update 테이블명 set 수정필드명 where 조건식 과비슷한 맥락이다. 캡슐화는 보통 "회원 정보" 수정할때 주로 사용 한다.

즉 회원가입과 회원 정보 수정의 차이라고 보면된다.

** 중요 **

 

댓글