20.12.30-27일차

되자개발자·2021년 2월 9일
0

기록하기

목록 보기
27/46
post-thumbnail

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

class Variables
{
 int iv;		// 인스턴스 변수
 static int cv; 	// 클래스 변수(static변수, 공유변수)
 
 void method()
 {
    int lv = 0;		// 지역변수
 }
} 

👉 클래스 변수(class variable)

  • 같은 클래스의 모든 인스턴스들이 공유하는 변수
  • 인스턴스 생성없이 '클래스이름.클래스변수명'으로 접근
  • 클래스가 로딩될 때 생성되고, 프로그램이 종료될 때 소멸
    👉 인스턴스 변수(instance variable)
  • 각 인스턴스의 개별적인 저장공간. 인스턴스마다 다른값 저장가능
  • 인스턴스 생성 후, '참조변수.인스턴스변수명'으로 접근
  • 인스턴스를 생성할 때 생성되고, 참조변수가 없을때 가비지컬렉터에 의해 자동 제거됨
    👉 지역 변수(local variable)
  • 메서드 내에 선언되며, 메서드의 종료와 함께 소멸
  • 조건문, 반복문의 블럭{ } 내에 선언된 지역변수는 블럭을 벗어나면 소멸

💎 메서드

  • ✨✨하나의 메서드는 한가지 기능만 수행하도록 작성하는 것이 좋다.
  • 기억장소를 생성하지 않는다.
  • {문장들} 묶은 것 (작업단위)
  • 값(입력)을 받아서 처리하고, 결과를 반환(출력)
    ( 입력받는 값이 없을 수도 있고, 결과를 돌려주지 않을 수도 있다.)

💍 메서드 장점

  • 코드의 중복을 줄임
  • 코드의 관리가 쉬움
  • 코드를 재사용할 수 있음
  • 코드가 간결해서 이해하기 쉬워짐

💍 JVM의 메모리 구조

  • 메서드영역(Method Area)
    👉클래스정보와 클래스변수가 저장되는곳
  • 호출스택(Call Stack)
    👉메서드 수행에 필요한 메모리가 제공되는 공간.
    메서드가 호출되면 호출스택에 메모리 할당, 종료되면 해제
    ->아래 있는 메서드가 위의 메서드를 호출
    ->맨 위의 메서드 하나만 실행 중. 나머지는 대기중
    - 힙(heap)
    👉인스턴스가 생성되는 공간. new연산자에 의해서 생성되는 배열과 객체는 모두 여기에 생성됨.

💍 인스턴스메서드 & static메서드

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

💍 오버로딩(overloading)

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

💎오버로딩의 조건

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

💍 공부하는 곳은~

자바의 정석o((>ω< ))o

profile
열심히가 되는 길♨_♨

0개의 댓글