프로그램에 필요한 값을 memory에 일시적으로 저장하고 사용하기위해서 만든다.
1. Instance 변수 ( member 변수 )
- class field에 선언하고 사용하는 변수
- 객체가 생성되면 객체마다 같은 이름으로 만들어지는 변수
- instance 변수의 생명주기는 객체화 될 때 생성되고 객체가 소멸될 때까지 사용된다.
- static 영역에서는 직접 사용 할 수 없다.(객체화를 해서 사용해야한다.)
└> static 이 붙어있는 method (클래스가 실행될때 가장먼저 메모리에 할당
되는 영역들 )
- 자동초기화가 된다. ( 변수를 선언시 값을 넣지 않아도 자바가상머신(JVM)이
정해진 값을 넣어주는 것)
└> 정수형 byte,short,int,long = 0
문자형 char = \u0000 (unicode값,개발자가 직접 기술할수없음)
실수형 float,double = 0.0
불린형 boolean = false;
참조형 class,String,array = null ( heap메모리에 주소를 할당받지 못함 )
작성법
1)선언
접근지정자(접근제한자,접근수정자,Access Modifier) + 데이터형 + 변수명 ;
접근지정자 : 사용범위에 대한 설정
public : 클래스 외부에서도 접근가능
1개만 proteced : 같은package내의 다른 클래스에서 사용가능
사용가능 외부 package 에서는 상속관계의 자식클래스에서만 접근가능
default : 같은 package내의 다른 클래스에서 접근가능
private : class 안에서만 접근 가능
-------------------------------------------------------------------------------
여러개 static : 공용메모리 생성
사용가능 final : 값변경 불가
transient : 객체직렬화 방지키워드
2) 객체화 ( heap생성)
- instance 변수를 사용하기 위한 문법
- 작성법 ) 클래스명 객체명 = new 클래스명();
3) 값 할당
- 객체명.변수명 = 값;
4) 값 사용
- 객체명.변수명
2. static 변수 ( static variable , class variable )
- 공용변수 ( 실행중인 JVM 에서 하나만 만들어 사용하는 변수 )
- 메모리를 절약 , 사용속도가 인스턴스변수보다 빠르다.
- 개별 정보를 저장 할 수 없다.
- 클래스를 실행하면 메모리에 먼저 저장된다.
- JVM이 종료될때 같이 종료된다.
- 객체화 없이 바로 사용할수 있다.
- class 내의 모든 영역에서 사용 할 수 있다.
- 자동초기화가 된다.
작성법)
1) 선언
접근지정자 static 데이터형 변수명;
2) 값할당
class명.변수명 = 값;
3)값사용
class명.변수명
위의 소스코드가 잘못된 부분이 있다.
객체명.변수명 보다는 클래스명.변수명으로 사용하는것이 옳바른 사용법이다.
'IT > JAVA' 카테고리의 다른 글
[JAVA] 특수문자 ( Escape Character ) (0) | 2018.03.28 |
---|---|
[JAVA] 메소드(method) (0) | 2018.03.28 |
[JAVA] JVM 메모리 영역 (0) | 2018.03.28 |
[JAVA] 반복문 (0) | 2018.03.27 |
[JAVA] 제어문 (0) | 2018.03.27 |