20210930

20210930

# 생성자 - 방금전에 생성된 멤버 변수나 상수의 초기화

ex) new A(); // new를 사용하여 A() 형태의 함수를 호출(=생성자)

ⓐ Heap 메모리에 멤버변수 생성(메소드는 Heap메모리가 아닌 Code 메모리에 형성됨)

ⓑ생성자 호출

생성자의 정의

- 정의를 해줌

- new를 사용하여 자동으로 호출됨(객체 생성이 되는 당시에)

- 기능이 다름 // 멤버변수 초기화 작업을 진행

- 선언 시 리턴 타입을 지정하지 않음(void 자체가 필요하지 않음)

- 선언지 클래스 이름과 동일하게 지정.

cf) 생성자행의 위치 >> 일반적으로 사용하는 관례적인 위치

package □

import □

class □{

멤버변수 선언

생성자 선언

메소드 선언

}

# 메소드

- 메소드는 일반 메소드와 생성자 메소드로 나뉘게 된다.

- 메소드의 문법

제어자 리턴타입 이름( ) { }

자바 - 객체지향 - 유지보수성이 높은 언어로, 사용하는 언어 사이에서도 유지보수성을 높일 수 있도록 해야함.

자바 언어의 원칙

1. 객체화

2. 되도록이면 코드의 중복을 허용하면 안된다.

cf) 생성자 오버로딩 >> 원칙2에 위배됨. >> 중복을 제거 >> '리팩토링'*(객체 지향적으로 코드를 전환시키는 것)

# 생성자 예외

일반 메소드처럼 호출할 수는 없으나, 생성자 메소드 안에서는 일반 메소드 처럼 다른 생성자를 호출할수 있고, 이때, 'this(호출하고 싶은 메소드)'를 이용하여 호출한다.

"모든 자바 클래스에는 반드시 1개 이상의 생성자를 갖는다." >> 자바 언어의 공통된 특징

cf) 컴파일 시 생성자가 없는 클래스의 경우, 자바가 자동으로 'default constructor'를 입력해준다.

ex) public Armor( ){ }

<직접적인 실습과정>

stack 데이터의 위치

from http://milktea-developer.tistory.com/11 by ccl(A) rewrite - 2021-10-01 06:01:58