본문 바로가기

JAVA

JAVA의 정석 변수

객체지향1을 공부하다보니 개념이 제대로 잡히지 않은것 같아서

머리 속 정리 시간.

 

 

● 변수란?

● 변수의 타입

● 상수와 리터럴

 


1) 변수 선언 / 저장

 

변수란?

= 변수는 값을 저장할 수 있는 공간이다.

프로그래밍을 하려면 저장할 공간, 저장된 공간이 필요하다. 왜? 그 값으로 프로그래밍을 해야하기 때문.

그러면 저장할 공간과 저장된 공간을 어떻게 사용해야할까?

 

변수를 선언을 해줘야한다.  그러면 선언은 어떻게?

 

선언하는 방법은

 

● 변수타입 변수이름;

 

변수타입 : 값이 정수인지 실수인지 문자인지 등 어떤 타입인지 알아야한다. 종류는 정수, 실수, 문자, 문자열 등

변수이름 : 사람 이름 부르는것처럼 이름을 지어주면 된다. 이름을 알아야 저장되고 저장할 공간에 넣고 빼줄수 있으니까.

 

그러면 예시로 변수타입은 int / 변수이름을 x로 해서 선업해도록 하겠다.

 

    int x ;

 

선언하는건 생각보다 별거 없다.

이제 x라는 변수에 저장할 공간을 만들었으니 값을 넣어주면 된다.

 

    int x = 5;

 

이렇게하면 x 라는 저장공간에 5라는 숫자를 저장하게 된거다.

수학에선 x=5  "x는 5다" 라고는 하지만 자바에서는 "x라는 저장공간에 5라는 숫자를 대입했다"라고 생각하면된다.

그래서 =  대입연산자라고 부른다.

 

2) 변수의 타입

아까 위에서 변수 타입은 뭐라했는지 생각이 안난다면 한번 더 보고 와라.

분류 변수의 타입 설명
숫자 int
long
정수(integer)를 저장하기 위한 타입
(20억이 넘으면 long)
둘 다 정수값이라는건 잊지말기
정수란?
소수점을 제외한 숫자로 생각하면 된다.
(1, 51, 2222, 4529191)
float
double
실수(floating-point number를 저장하기 위한 타입
실수란? 소수점으로 생각하면된다.
(0.1, 345423.122)
문자 char 문자(character)를 저장하기 위한 타입
char x = "a"
String 여러 문자(문자열, string)을 저장하기 위한 타입
String x = {"자바의정석"}

 

3) "상수"와 "리터럴"

● 상수란?

"상수"는 변수처럼 "값"을 저장할 수 있는 공간이다. 다만, 값을 한번 저장하면 바꿀수 없는 저장소이다.

선언하는 방식은 동일하지만 앞에 "final"을 추가해주면 된다.

 

일반 변수 선언

   int MAX_SPEED = 10;

= 저장소 값을 바꿀 수 있다.

 

상수 변수 선언

   fianl int MAX_SPEED = 10;

= 저장소 값을 바꿀 수 없.다.

 

여기서 MAX_SPEED 대문자로 작성했는데, 원래 상수의 이름은 대문자로 하는게 관례이다.

 

● 리터럴이란?

 

여태 변수타입,변수이름에 대해서 이야기했다. 그러면 저장소에 넣는 값은 뭐라고 불러야할까? 값?

또 다른말로는 리터럴(literal) 이란 말을 사용한다.

 

변수(variable) 하나의 값을 저장하기 위한 공간

상수(constant) 값을 한번만 저장할 수 있는 공간

리터럴(literal) 그 자체 값을 의미하는 것

 

int year = 2023;

final int MAX_YALUE = 100;

 

year = 변수이름

MAX_YALUE = 상수

2023; 100; = 리터럴

 

4) 리터럴의 타입과 접미사

● 리터럴타입 / 접미사

변수에도 타입이 있는 것처럼 리터럴에도 타입이 있다.

종류 리터럴 접미사
논리형 false, true 없음
정수형 123, 007, 0b0101, 0xff L
실수형 3.14 3.0e9, 1.4f f, d
문자형 'a', '1' 없음
문자열 "ACB", "aadd", "A", "true" 없음

변수타입에 따라 접미사가 붙게된다. 이거는 외워야한다.

 

 

5) 문자열

● 문자열 결합

위에서와 같이 문자열( "" ) 의 경우 string을 사용해야한다. 

String name = "Ja" + "va";

String str = " name + 8.0;

 

String name 으로 문자열을 + 하여 Java를 만들고 str에 완성된 Java를 더해서 Java 8.0을 생성

 

6) 변수 값 바꾸기

여기서 또 변수란 무엇인가? 계속 생각해야한다 "변수는 하나의 값을 저장하기 위한 공간이다." 여기서 정의 및 개념을 계속 잡아가면서 생각하자.

 

int x = 10;

int y = 20;

 

두개의 값을 꾸려면 어떻게 해야할까? ( 재선언하기 X)

 

int tmp 임시 저장소를 하나 생성해준다

 

    tmp = x

    x = y

    y = tmp

 

여기서 알다시피 = 은 수학적의미가 아닌 대입형으로 생각하면 풀이가 쉽다.

 

    x -> tmp

    y -> x

    y -> tmp 

      종료

 

이렇게 이동하면서 재선언하는걸로 생각하면 된다.

 

7) 기본형과 참조형

 기본형(primitive type)

논리형, 문자형, 정수형, 실수형 계산을 위한 실제 값을 저장하는 8개를 의미한다.

 참조형(reference type)

객체의 주소를 저장한다. 기본형 8개를 제외한 나머지 타입 

 

자세한 내용은 후반부에 설명

 

8) 기본형과 참조형

기본형 8가지의 종류

  1 byte 2 byte 3 byte 4 byte
논리형 bloolean      
문자형   char    
정수형 byte short int long
실수형     float double

반드시 외워야할 부분이므로 꼭 암기하기!

 

9) printf 출력하기

● 지시자

주로 사용되는 지시자에 대해 먼저 알아보겠다

지시자 설명
%d 10진(decial)정수의 형식으로 출력
%x 16진(hexa-decimal) 정수의 형식으로 출력
%f 부동 소수점(floating-point)의 형식으로 출력
%c 문자(character)로 출력
%s 문자열(string)으로 출력

   

printf()는 '지시자'를 통해 변수의 값을 여러 형식으로 변환하여 출력하는 기능을 가지고있다.

 

● printf 출력

 

     int age = 14;

    System.out.printf("age:%d", age);

------------출력 과정------------

-> System.out.printf("age:%d", 14);

-> System.out.printf("age:14");

 

     age:14로 화면에 출력된다.

 

    int age = 14;

    int year = 2019;

    System.out.printf("age:%d year:%d", age, year);

------------------------출력 과정------------------------

-> System.out.printf("age:%d year:%d", 14, 2019);

-> System.out.printf("age:14 year:2019", 14, 2019);

 

    age:14 year:2019 로 화면에 출력된다.

 

 


 

'JAVA' 카테고리의 다른 글

JAVA의 정석 배열  (0) 2023.01.25
JAVA의 정석 조건문과 반복문  (0) 2023.01.25
JAVA의 정석 연산자(2)  (0) 2023.01.25
JAVA의 정석 연산자(1)  (0) 2023.01.24