자바의 정석 (1) static 오버로딩 생성자 초기화

Sungmin·2023년 5월 24일
0

자바 기본 개념

목록 보기
2/21
post-thumbnail

static 변수

공통 속성일 경우 static을 붙인다.


기본형 매개변수

읽기만 가능

참조형 매개변수

읽기와 변경 가능
(참조한 객체의 값 자체를 바꿀 수 있음)


static(클래스) 메서드

메서드 앞에 static이 붙은것

  • 객체생성없이 클래스이름.메서드이름()으로 호출
  • 인스턴스 멤버와 관련없는 작업을 하는 메서드
  • static메서드 안에서 인스턴스 메서드 호출불가

ex) Math.random()

인스턴스 메서드

메서드 앞에 아무것도 붙지않은것

  • 인스턴스 생성후, 참조변수.메서드이름()으로 호출
  • 인스턴스 멤버와 관련된 작업을 하는 메서드
  • 메서드 내에서 인스턴스 변수 사용가능
  • 인스턴스메서드 안에서 static메서드 호출 가능

static을 언제 붙여야 할까?

인스턴스 변수를 사용 할 경우 인스턴스 메서드
지역변수를 사용 할 경우 static메서드

인스턴스 변수를 사용하지 않을경우 static을 붙힌다.


오버로딩

한 클래스 안에 같은 이름의 메서드 여러개 정의하는 것

오버로딩 성립조건

  1. 메서드 이름이 같아야 한다.
  2. 매개변수의 개수 또는 타입이 달라야 한다.
  3. 반환 타입은 영향이 없다.


2번성립안함

2번성립안함

오버로딩 가능

적절한 오버로딩 사용


생성자

인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메서드

  • 클래스 이름과 같아야한다.
  • 리턴값이 없다.(void 안붙임)
  • 모든 클래스는 반드시 생성자를 가져야 한다.

기본 생성자

  • 매개변수가 없는 생성자
  • 생성자가 하나도 없을 때만, 컴파일러가 자동 추가
  • 매개변수가 있는 생성자를 만들경우, 매개변수가 없는 객체를 생성하려면
    매개변수가 없는 생성자를 만들어줘야 한다.
    클래스이름(){} - 기본 생성자

생성자 this()

생성자에서 다른 생성자 호출할 때 사용
다른 생성자 호출시 첫 줄에서만 사용 가능

참조변수 this

  • 인스턴스 자신을 가리키는 참조변수
  • 인스턴스 메서드에서 사용가능
  • 지역변수와 인스턴스 변수를 구별할 때 사용
  • static 메서드에서 this 사용불가

왼쪽 그림은 같은 클래스안이고, 인스턴스변수와 지역변수 구분이 가능하기 때문에 this생략가능
오른쪽 그림은 이름이 같기 때문에 구분하기 위해 this를 붙임.


변수의 초기화

지역변수는 수동 초기화 해야함(사용전 꼭!!)
인스턴스 변수는 자동 초기화 된다.

  1. 자동 초기화
  2. 간단 초기화(=)
  3. 복잡 초기화({}, static{}, 생성자)
  • 인스턴스 변수일 경우 생성자 초기화
  • 클래스(static) 변수일 경우 static{ } 초기화

클래스 변수 초기화 시점: 클래스가 처음 로딩될 때 단 한번

인스턴스 변수 초기화 시점: 인스턴스가 생성될 때 마다

초기화 순서 ★

  1. 클래스 변수 -> 인스턴스 변수
  2. 자동 -> 간단 -> 복잡

    자동 0, 간단 '=', 복잡 static{}, 생성자

profile
Let's Coding

0개의 댓글