생성자
객체를 생성할 때 항상 실행되는 것으로, 객체를 초기화해주기 위해 맨 처음 실행되는 메소드이다.
생성자의 특징
1. 클래스 이름과 동일
2. 반환형이 존재하지 않음.
3. 인스턴스 생성시 딱 한번 호출된다.
4. 인스턴스 변수의 초기화가 목적이다.
매개변수의 수와 타입이 다르다면 여러개의 생성자를 선언할 수 있다
기본생성자: 내용이 없어도 가능하면 기술
=> 없으면 디폴트 생성자를 컴파일러가 자동으로 생성
단, 인자가 있는 생성자가 존재하면 기본생성자는 자동으로 만들어지지 않는다.
public class Hong{
int a = 0; //전역변수(인스턴스 변수)
int b = 0;
public Hong(){ //기본 생성자
}
public Hong(int a, int b){ // 지역변수
this.a = a;
this.b = b;
}
public int getA(){
return a;
}
public int setA(int a){
this.a = a;
}
}
this: 전역변수와 지역변수를 구별하는 용도로 사용됩니다.
this를 사용한 쪽이 전역변수 부분입니다.
static메소드는 객체를 생성하지 않아도 클래스명.static.메소드명으로 호출이 가능합니다.
이와 같이 객체가 없어도 호출이 가능하기에 this의 사용을 허용하지 않습니다.
getter -> 멤버변수를 호출한 곳으로 리턴한다.
setter -> 인자를 받아서 멤버변수를 초기화한다.
call by value
호출 -> 함수 값으로 -> 인자가 기본형
가인자를 바꾸어도 실인자에 영향이 없습니다.
메소드 호출 시에 사용되는 인자의 메모리에 저장되어 있는 값(value)을 복사하여 보냅니다
무슨 뜻이냐면 int a =3 이라는 문구가 있으면 메소드에서 인자값을 받을 때 a라는 자체에 주소를 받는게 아니라 a의 값인 3을 받아 처리하는 방식입니다.
call by reference
메소드 호출 시 사용되는 인자 값의 메모리에 저장되어있는 주소(Address)를 복사하여 보냅니다.
값이 아니라 인자 그자체에 주소 값을 보냅니다.
자세한건 아래의 링크 참조
자바의 메소드(함수) 호출 방식 - Call by Value vs Call by Reference
메소드(함수) 호출 방식 프로그래밍 언어에서 변수를 다른 함수의 인자로 넘겨 줄 수 있습니다. 이 때 이 변수의 '값'을 넘겨 주는 호출 방식을 Call by Value, 이 변수의 '참조값' (혹은 주소, 포인터
siyoon210.tistory.com
'Java' 카테고리의 다른 글
싱글톤(singleton)이란? (0) | 2020.10.31 |
---|---|
자바 메모리 운영, static변수 (0) | 2020.10.31 |
클래스 구조, 선언, 객체생성 (0) | 2020.10.31 |
배열이란? (0) | 2020.10.31 |
제어문 및 반복문 (0) | 2020.10.31 |