Day 17

ChangWoo·2023년 4월 21일
1

자바의 정석

목록 보기
17/71
post-thumbnail

ch 6-11 선언 위치에 따른 변수의 종류

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


변수는 크게 클래스 영역과 메서드 영역으로 나뉜다.
변수와 메서드의 순서는 상관없다.
클래스 영역 (클래스의 시작 ~ 클래스의 끝)

    1. iv (인스턴스 변수)
    1. cv (클래스 변수(static변수, 공유변수)) // static + iv
  • 변수 선언만 가능
    메서드 영역 (메서드의 시작 ~ 메서드의 끝)
    1. lv (지역 변수)
  • 메서드 선언(메서드 정의)만 가능

변수의 종류와 선언위치, 생성시기

  • 지역변수(lv)는 변수 선언문이 수행되었을 때 생성되고, 메서드 종료시 자동 제거된다.
  • 클래스변수(cv)와 인스턴스변수(iv)는 클래스영역 전체에서 사용 가능하다.
  • 인스턴스변수(iv)는 인스턴스(객체)가 생성되었을 때 생성되고, 클래스변수와 달리 static이 안 붙는다.
  • 객체 = iv를 묶어놓은 것(변수를 여러 개 묶어놓은 것)
  • 클래스변수(cv)는 클래스가 메모리에 올라갈 때 (=클래스가 필요할 때(=객체 만들 때)) 생성되고, 자동으로 만들어지므로 객체생성을 안해도 Ok!
  • cv와 iv의 차이 = cv는 객체생성 안해도 ok(아무때나 사용 가능) / iv는 객체생성을 해야 사용가능

ch 6-12,13 클래스변수, 인스턴스변수

클래스 변수와 인스턴스 변수

Ex) 포커 카드 3장 (각 별 1장=객체)
속성 = 무늬 / 숫자 = 객체마다 다르게 유지되어야 하는 값 & 폭 / 높이 = 모든 객체가 공통으로 가지는 값

  • 개별적으로 값을 가져야 하는 것은 iv로,
  • 공통적으로 값을 가져야 하는 것은 cv로 한다.

생성 과정
1. 객체 생성

Card c = new Card();
  1. 객체 사용
Card c = new Card();
c.kind = "HEART";
c.number = 5;
c.width = 200;     -> Card.width = 200;    (cv는 클래스이름이 붙어야 한다!)
c.heigth = 300;  	-> Card.height = 300;	(cv는 클래스이름이 붙어야 한다!)
profile
한 걸음 한 걸음 나아가는 개발자

0개의 댓글