자바 이야기

자바 이야기 0. 유닛 타입 만들기(변수)

김푸른초푸른 2020. 2. 19. 23:27

[ 변수 생성하기 ] 

= 변수, 상수로 만들 수 있다.

1] 변수 = 단 하나의 값을 저장할 수 있는 메모리 상 공간 / 값이 변할 수 있음

2] 상수 = 고정값

(final을 사용하여 초기값 변경 불가능, 모두 대문자 사용 )

 

1> 클래스 앞에 final이 붙으면 상속 불가

2> 멤버 앞에 붙으면 초기값 수정 불가

3> 메서드 앞에 붙으면 오버라이딩 불가

=> 주어진 대로만 사용할 수 밖에 없음 

 

1) 변수 선언 : 속성 + 이름으로 쓴다 

2) 변수 초기화 : 변수에 값을 넣어야 움직인다 

3) 클래스 변수는 변수 초기화 생략 

= 지역변수는 사용 전에 반드시 초기화 

 

[명명규칙]

1) 대소문자가 구분되며 길이에 제한이 없다.

2) 숫자로 시작은 불가능

3) 특수문자는 '_' , '$' 만 허용=

 

[변수종류]

1) 클래스 변수 (static 변수) 

1>  메소드 영역에 저장되며 클래스 소멸때까지 사용된다. 

EX) STATIC INT 변수명 ;

2> 다른 클래스에서  접근해서 사용할 때 클래스 이름으로 접근해야한다

3> 메서드 앞에 static을 사용하면 this나 super가 불가하다! 

4> static 자원은 공유되지만 메모리에는 1개만 올라가 있다! 

 

2) 인스턴스 변수 (객체 변수)

= 힙 영역에서 저장되며 인스턴스가 소멸떄까지 사용된다.

EX) STRING 변수명; 

 

=> 생성방법 

1) 객체참조변수명 = new 클래스명();

ex) mycar = new Car();

 

2) 클래스명 객체참조변수명 = new 클래스명();

ex) Car mycar = new Car();

 

3) 지역변수

= 스택영역에 저장되며 메소드 안에서만 선언되어 사용되는 변수 

=> 인스턴스와 클래스 변수값을 변경가능하다! 

 

4) 멤버변수 (전역변수)

: 어디든지 쓰일 수 있음 / 객체를 생성한다면! 

 

5) 매개변수 (파라미터 변수)

: 파라미터 값으로 준다 

 

 

[this 참조변수]

= 인스턴스가 자기 자신을 가리킬 떄 사용한다. 

 

2] 상수 = 공격력 고정인 유닛 

EX) FINAL 타입명 유닛명 

 

1. 기본 자료형 (8개)

= 실제 DATA를 저장한다. / 연산은 참조형은 불가능해서 연산에 사용되는 것은 모두 기본형 변수다. 

 

1) 정수형

 - byre(1바이트) : 작은 범위의 값을 저장하기 유용

 - char(2바이트) : 음수표현 하지 않고, 문자를 저장하거나 출력하는 용도로 사용

 - short(2바이트) : 메모리에서 차지하는 크기가 작다

 - int(4바이트) : 정수타입 기본 자료형

 - long(8바이트) : 표현범위가 큰 데이터 저장하기 유용한 자료형

 

 2) 논리형

 - boolean : true or false 중 하나의 값만 가진다

 

 

 3) 실수형

 

 - float(4바이트) : 표현범위가 작다 

 - double(8바이트) : 실수형에서 기본 데이터형

=> 소수점까지 표시 가능 

 

 4) 산술연산자

 - 이항연산자 (+/-/*/나누기)

 -> % : 두 수를 나눈 나머지 값을 구함

 -> += : 좌변과 우변을 더한 결과를 좌변에 대입

 -> -= : 좌변과 우변을 뺀 결과를 좌변에 대입

 -> %= : 좌변과 우변을 나눈 나머지 결과를 좌변에 대입

 - 단항연산자 (++ / --)

   : 각 1씩 증가 / 감소시킴

 

 5) 관계 연산자

 - > : 왼쪽 항이 크면 참 아니면 거짓

 - < : 오른쪽 항이 크면 참 아니면 거짓

 - >= : 왼쪽 항이 크거나 같으면 참 아니면 거짓

 - <= : 오른쪽 항이 크거나 같으면 참 아니면 거짓

 - == : 왼쪽과 오른쪽이 같으면 참 아니면 거짓

 - != : 왼쪽과 오른쪽이 같지 않으면 참 아니면 거짓

 

 6) 논리 연산자

 - &&(AND) : 두 항 모두 참이면 참 아니면 거짓

 - ||(OR) : 두 항 중 하나만 참이면 참 아니면 거짓

 - !(NOT) : 연산되는 항이 참이면 거짓 / 거짓이면 참

 

=> 연산자는 유닛의 공격력 또는 관계에 대해 정해준다.

 

2. 래퍼 클래스(객체) (기본형을 제외한 나머지들)

= 어떤 값이 저장되어 있는 주소를 값으로 갖는다.

 

1) int = INTEGER

2) long = LONG

3) byte = BYTE

4) char = Character

5) float = FLOAT

5) double = DOUBLE

6) short = Short 

 

5. 박싱 & 언박싱

1) 박싱 = 일반 클래스 -> 래퍼 클래스로 변환

2) 언박싱 = 래퍼 클래스 -> 일반 클래스 

 

3. 레퍼런스 타입 

1) 클래스 

2) 인터페이스 

3) 배열 

 

4. 형변환과 캐스트 연산자

1) 형변환

= 공격력을 부여할 때 맞지 않는 연산자가 발생시 자동으로 맞는 타입으로 변환해준다.

- boolean을 제외한 나머지 7개의 기본형은 서로 형변환이 가능

- 값의 범위가 작은 타입에서 큰 타입으로의 형변환은 생략 가능

 

2) 종류

- 명시적(강제) 형변환

= 경고 무시하고 큰 타입에서 작은 타입으로 변환 / 캐스트 연산자

ex) int a = (int) 3.5;

 

- 묵시적(자동) 형변환 

= 작은 타입에서 큰 타입으로 변환