객체지향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 |