9. 변수 (variable)
: 용도 -> 데이터 저장
: 문법
1) 변수 선언
데이터 타입 변수명;
2) 값 할당 (초기화 : 변수에 값을 맨 처음 설정하는 작업)
변수명 = 값;
: 종류
1) 로컬변수 (local variable)
: 메소드 내에서 선언된 변수
: 메소드 호출할때 스택(stack)에 생성 - 메소드 종료시 삭제
(메소드는 반드시 호출해야 실행된다)
: 변수 선언 한 후에 초기화를 해줘야한다
2) 인스턴스 변수 (instance variable)
: 메소드 밖에서 선언된 변수
ex) int num;
: 객체 생성시 변수가 힙(Heap)에 생성 - 객체 소멸시 삭제
(new 이용)
: 힙 메모리에 생성
: 변수 선언만 하고 초기화 안하면, 자동으로 기본값을 저장
ex)
int num; ==> 0
float f ; ==> 0.0
boolean b;==> false
char c; ==> \u0000
String str; ==> null
3) 클래스 변수 (class variable, static variable)
: 메소드 밖에서 선언된 변수
ex) static int num; // static 변수
int num2; // instance 변수 (앞에 static 여부)
: 프로그램 실행시 변수가 class area 메모리에 생성 - 프로그램 종료시 삭제
* 1) 프로그램 실행 (java.exe) --> static으로 된 변수, 메소드가 수행 (대표적으로 main 메소드)
2) main 메소드 내에서 객체 생성
ex) Hello h = new Hello(); --> 인스턴스 변수가 생성
3) 메소드 호출 --> 로컬변수가 생성
* 소멸은 생성의 역순
10. 데이터 타입 (Data Type)
1) 기본 데이터 타입 (Primitive Data Type : PDT)
- 수치데이터
: 정수형 4가지
- byte (1byte)
- short (2byte)
- int (4byte) - 기본
- long (8byte)
: 실수형
- float (4byte)
- double (8byte) - 기본
- 문자데이터 (수치데이터 ==> 아스키코드 값)
: char(2byte) (A - 65, a - 97)
- 논리데이터
: boolean - false(디폴트값)
----> 총 8개의 PDT 타입 존재
----> 기본데이터형과 관련된 클래스 (Wrapper 클래스)
: 기본데이터와 관련된 작업을 효율적으로 하기 위한 방법
ex) 범위, 문자열숫자 -> 숫자, 숫자 -> 문자열 etc..)
byte (Byte)
short (Short)
int (Integer)
long (Long)
float (Float)
double (Double)
char (Character)
boolean (Boolean)
2) 참조 데이터 타입 (Reference Data Type : RDT)
: PDT를 제외한 나머지 전부
ex) class, interface, array
11. 형변환 (type casting)
: 종류 2가지
1) 자동형변환 (promotion)
ex) short a = 10;
int b = a; // 4byte = 2byte
2) 강제형변환 (type casting)
(type) 캐스팅연산자
ex) int a = 10;
short b = a; // 에러
short b = (short)a; // 에러없음
: 기본형 + 참조형도 가능