※ 이 글은 자바의정석을 참조하였다.

1. 선언위치에 따른 변수에 종류1
변수의종류 선언위치 생성시기
클래스변수 클래스영역 클래스가 메모리에 올라갈 때
인스턴스변수 클래스 영역 인스턴스 생성시
지역변수 메서드 영역 변수 선언문 수행시
2. 선언위치에 따른 변수의 종류2
  • 인스턴스변수
    • 각 인스턴스의 개별적인 저장공간, 인스턴스마다 다른값 저장 가능
    • 인스턴스 생성후, “참조변수.인스턴스변수명” 으로 접근
    • 인스턴스를 생성할 때 생성되고, 참조변수가 없을때 가비지컬렉터에 의해 자동제거
  • 클래스변수
    • 같은 클래스의 모든 인스턴스들이 공유하는 변수
    • 인스턴스 생성없이 “클래스이름.클래스변수명” 으로 접근
    • 클래스가 로딩될 때 생성되고 프로그램이 종료될때 소멸
  • 지역변수
    • 메서드 내에 선언되며, 메서드의 종료와 함께 소멸
    • 조건문, 반복문의 블럭{} 내에 선언된 지역변수는 블럭을 벗어나면 소멸
3. 메서드
  • 메서드란?
    • 작업을 수행하기 위한 명령문의 집합
  • 메서드의 장점과 작성지침
    • 반복적인 코드를 줄이고 코드관리 용이
    • 반복적으로 수행되는 여러문장 메서드로 작성
    • 하나의 메서드는 한가지 기능만 수행하도록 작성하는것이 좋다
    • 관련된 여러문장을 메서드로 작성한다
  • 기본형 매개변수와 참조형 매개변수와
    • 기본형 매개변수 : 변수의 값을 읽기만 할 수 있다.
    • 참조형 매개변수 : 변수의 값을 읽고 변경할 수 있다.
4. 클래스메서드와 인스턴스메서드
  • 클래스변수와 인스턴스 변수와 거의 같다
  • 인스턴스메서드
    • 인스턴스생성 후 “참조변수.메서드이름()” 으로 호출
    • 인스턴스변수나 인스턴스메서드와 관련된 작업을 하는 메서드
    • 메서드 내에서 인스턴스변수 사용가능
  • 클래스메서드 (static메서드)
    • 객체생성 없이 “클래스이름.메서드이름()”으로 호출
    • 인스턴스변수나 인스턴스메서드와 관련없는 작업을 하는 메서드
    • 메서드내에서 인스턴스변수 사용불가
    • 메서드 내에서 인스턴스변수를 사용하지 않는다면 static을 붙이는것을 고려한다.
5. 메서드 오버로딩
  • 하나의 클래스에 같은이름의 메서드를 여러개 정의하는것을 오버로딩이라 한다.
  • 오버로딩의 조건
    • 메서드의 이름이 같아야한다.
    • 매개변수의 개수 또는 타입이 달라야 한다.
    • 매개변수는 같고 리턴타입이 다른 경우는 오버로딩이 성립되지 않는다. (리턴타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다.)
  • ※ 오버로딩과 오버라이딩의 차이
    • 오버로딩 : 기존에 없는 새로운 메서드를 정의하는것
    • 오버라이딩 : 상속받은 메서드의 내용을 변경하는 것
chanhee.kim's profile image

chanhee.kim

2017-12-22 10:10

Read more posts by this author