JAVA, 변수와 메서드/생성자

변수와 메서드

1. 선언위치에 따른 변수의 종류

  • [인스턴스변수]
    • 클래스 영역에 선언되며, 클래스의 인스턴스를 생성할 때 만들어진다.
    • 인스턴스마다 고유한 상태를 유지해야 하는 속성의 경우, 인스턴스변수로 선언한다.
    • new할때 생성
  • [클래스변수]
    • 인스턴스변수 앞에 static 붙이면 된다.
    • 한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야 하는 속성의 경우
    • 인스턴스를 생성하지 않고도 언제라도 바로 사용 할 수 있다.
    • new할때 생성x 처음 메모리에 로드될때 생성
    • 클래스이름.변수 이런식으로 사용한다
  • [지역변수]
    • 메서드 내에 선언되어 메서드 내에서만 사용 가능

2. 기본형 매개변수 & 참조형 매개변수

  • [기본형 매개변수]
    변수의 값을 읽기만 할 수 있다 (read only)
    기본형의 값이 복사 되어 넘겨주기 때문에 원본에는 영향 x
  • [참조형 매개변수] : 변수의 값을 읽고 변경할 수 있다 (read & write)
    인스턴스의 주소를 넘겨주기 때문에 원본에 영향 o

3. 클래스 메서드(static메서드)와 인스턴스 메서드

  • [인스턴스 메서드]
    메서드의 작업을 수행하는데 인스턴스 변수를 필요로 하는 메서드
  • [클래스(static) 메서드]
    인스턴스와 관계없는 (인스턴스 변수나 인스턴스 메서드를 사용하지 않는) 메서드

  • 클래스의 멤버변수 중 모든 인스턴스에 공통된 값을 유지해야하는 것이 있는지 살펴 보고 있으면, static을 붙여준다
  • 작성한 메서드 중에서 인스턴스 변수나 인스턴스 메서드를 사용하지 않는 메서드에 static을 붙일 것을 고려한다

생성자

1. 생성자란

  • 인스턴스가 생성될 때 호출되는 ‘인스턴스 초기화 메서드’ [조건]
    • 생성자의 이름은 클래스의 이름과 같아야 한다
    • 생성자는 리턴 값이 없다

2. 기본생성자

  • 기본 생성자가 컴파일러에 의해서 추가되는 경우는 클래스에 정의된 생성자가 하나도 없을때 뿐이다.

3. 생성자에서 다른 생성자 호출하기 - this(), This

  • 생성자의 이름으로 클래스이름 대신 this를 사용한다
  • 한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출이 가능하다

Reference

  • 자바의 정석 - 남궁성