메소드 생성자 정확히 그것이 무엇이냐

Juju·2022년 9월 27일
0

1.메소드

<정의>
method()
명령문의 집합
함수

 접근제어자 반환타입 메소드이름 (입력자료형 매개변수 입력자료형 매개변수) {
...
return 리턴값;
}
public static void main(String[] args){
...
(return 값이 없음 void로 선언했기 때문)
}

<호출>

1. 객체참조변수이름.메소드이름();
2. 객체참조변수이름.메소드이름(인수1,인수2,...);

객체참조변수란?
객체가 참조하고 있는 변수 이다 이자식아

2.생성자

<정의>
Constructor
객체가 생성될 때! 객체를 초기화하기 위해 실행되는 메소드이다.
정리하자면 초기화 메소드는 = 생성자이다.

1. 클래스이름() { ... } 
2. 클래스이름(인수1,인수2 ...) { ...}

생성자의 이름은 반드시 클래스의 이름과 동일하게 작성
생성자는 여러개로 정의할 수 있다. (Overoading)
생성자는 new를 통해 객체를 생성할 때 한번만 호출된다.
생성자는 어떤 값도 리턴하지 않기 때문에 리턴타입을 지정할 수 없다.

기본생성자 default constructor

클래스이름() { }

기본생성자는 매개변수와 실행 코드가 없어 아무일도 하지않고 단순 리턴하는 생성자

? 메소드와 컨스트럭쳐는 한속통인데 컨스트럭쳐는 초기화 역할을 한다. 근데 왜 자꾸 시도때도없이 정의하고 호출하는건지??

https://danmilife.tistory.com/20

?? 그게 초기화를 왜 해줘야되고 초기화가 정확하게 뭔지

자바에서 초기화란 (initialization) 란?
객체를 선언하고 값을 '최초'로 할당하는 것

int a = 10; 이라고 작성한 것은
선언과 동시에 초기화 한 것이다.

이후 int a = 20; 이라고 작성한 것은
값을 바꾸는 할당(allocation)이 된다.

초기화는 왜 해야할까?

클래스 영역에 선언 변수들은 실행 시 초기화를 하지 않아도 int타입에 String을 넣는다거나
String 타입에 int를 넣는 참사를 방지하기 위해.

컴파일러에서 아래에 출력한 0, null, null 처럼 자동으로 값을 할당해준다.
메소드안에서는 자동으로 값 할당이 되지 않기 때문에 에러가 뜬다.

profile
짤막한 기록들..

0개의 댓글