<정의>
method()
명령문의 집합
함수
접근제어자 반환타입 메소드이름 (입력자료형 매개변수 입력자료형 매개변수) {
...
return 리턴값;
}
public static void main(String[] args){
...
(return 값이 없음 void로 선언했기 때문)
}
<호출>
1. 객체참조변수이름.메소드이름();
2. 객체참조변수이름.메소드이름(인수1,인수2,...);
객체참조변수란?
객체가 참조하고 있는 변수 이다 이자식아
<정의>
Constructor
객체가 생성될 때! 객체를 초기화하기 위해 실행되는 메소드이다.
정리하자면 초기화 메소드는 = 생성자이다.
1. 클래스이름() { ... }
2. 클래스이름(인수1,인수2 ...) { ...}
생성자의 이름은 반드시 클래스의 이름과 동일하게 작성
생성자는 여러개로 정의할 수 있다. (Overoading)
생성자는 new를 통해 객체를 생성할 때 한번만 호출된다.
생성자는 어떤 값도 리턴하지 않기 때문에 리턴타입을 지정할 수 없다.
클래스이름() { }
기본생성자는 매개변수와 실행 코드가 없어 아무일도 하지않고 단순 리턴하는 생성자
자바에서 초기화란 (initialization) 란?
객체를 선언하고 값을 '최초'로 할당하는 것
int a = 10; 이라고 작성한 것은
선언과 동시에 초기화 한 것이다.
이후 int a = 20; 이라고 작성한 것은
값을 바꾸는 할당(allocation)이 된다.
초기화는 왜 해야할까?
클래스 영역에 선언 변수들은 실행 시 초기화를 하지 않아도 int타입에 String을 넣는다거나
String 타입에 int를 넣는 참사를 방지하기 위해.
컴파일러에서 아래에 출력한 0, null, null 처럼 자동으로 값을 할당해준다.
메소드안에서는 자동으로 값 할당이 되지 않기 때문에 에러가 뜬다.