๐ฅ๏ธJava ํ๋ก๊ทธ๋๋ฐ: ๋ฐ์ดํฐ ํ์
(Data Types)
๋ฐฑ์๋ ๊ฐ๋ฐ์๋ก ์ทจ์
์ ์ค๋นํ๋ฉด์, ํ๋ก๊ทธ๋๋ฐ์ ๊ธฐ์ด์ธ ๋ฐ์ดํฐ ํ์
์ ๋ํด ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
Java์์๋ ๋ค์ํ ๋ฐ์ดํฐ ํ์
์ ์ ๊ณตํ๋ฉฐ, ๊ฐ ๋ฐ์ดํฐ ํ์
์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ, ์ฒ๋ฆฌ ์๋, ์ ์ฅ ๊ฐ๋ฅํ ๊ฐ์ ๋ฒ์ ๋ฑ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
์ด๋ฒ ํฌ์คํ
์์๋ Java์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์
์ ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค.
1. ๋ฐ์ดํฐ ํ์
์ด๋?
๋ฐ์ดํฐ ํ์
(Data Type)์ ๋ณ์์ ์ ์ฅํ ์ ์๋ ๋ฐ์ดํฐ์ ์ข
๋ฅ๋ฅผ ์ ์ํ๋ ๊ฒ์
๋๋ค.
Java๋ ๊ฐํ์
(strictly-typed) ์ธ์ด๋ก, ๋ณ์๋ฅผ ์ ์ธํ ๋ ๋ฐ๋์ ๋ฐ์ดํฐ์ ํ์
์ ์ง์ ํด์ผ ํฉ๋๋ค.
์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ ์ ์งํ๊ณ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
Java์ ๋ฐ์ดํฐ ํ์
์ ํฌ๊ฒ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์
(Primitive Data Types)๊ณผ ์ฐธ์กฐ ๋ฐ์ดํฐ ํ์
(Reference Data Types)์ผ๋ก ๋๋ ์ ์์ต๋๋ค.
2. ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์
(Primitive Data Types)
๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์
์ Java์์ ์ ๊ณตํ๋ ๊ฐ์ฅ ๋จ์ํ ํํ์ ๋ฐ์ดํฐ ํ์
์ผ๋ก, ๊ฐ ์์ฒด๋ฅผ ์ ์ฅํฉ๋๋ค.
Java์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์
์ ์ด 8๊ฐ์ง๊ฐ ์์ต๋๋ค.
1) ์ ์ํ ๋ฐ์ดํฐ ํ์
(Integer Types)
- byte: 1๋ฐ์ดํธ ํฌ๊ธฐ (-128์์ 127๊น์ง ์ ์ฅ ๊ฐ๋ฅ)
- short: 2๋ฐ์ดํธ ํฌ๊ธฐ (-32,768์์ 32,767๊น์ง ์ ์ฅ ๊ฐ๋ฅ)
- int: 4๋ฐ์ดํธ ํฌ๊ธฐ (-2,147,483,648์์ 2,147,483,647๊น์ง ์ ์ฅ ๊ฐ๋ฅ) - ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์ ์ํ ๋ฐ์ดํฐ ํ์
int population = 1000000;
|
- long: 8๋ฐ์ดํธ ํฌ๊ธฐ (๋งค์ฐ ํฐ ์ ์๊ฐ์ ์ ์ฅํ ๋ ์ฌ์ฉ, -9,223,372,036,854,775,808์์ 9,223,372,036,854,775,807๊น์ง ์ ์ฅ ๊ฐ๋ฅ)
long distance = 10000000000L;
|
2) ์ค์ํ ๋ฐ์ดํฐ ํ์
(Floating-Point Types)
- float: 4๋ฐ์ดํธ ํฌ๊ธฐ (์์์ ์ ํฌํจํ ๊ฐ์ ์ ์ฅ, ์ซ์ ๋ค์ f๋ฅผ ๋ถ์)
- double: 8๋ฐ์ดํธ ํฌ๊ธฐ (์์์ ์ ํฌํจํ ๊ฐ์ ์ ์ฅ, ๋ ์ ํํ ๊ณ์ฐ์ ์ฌ์ฉ, ๊ธฐ๋ณธ ์ค์ํ ํ์
)
3) ๋ฌธ์ํ ๋ฐ์ดํฐ ํ์
(Character Type)
- char: 2๋ฐ์ดํธ ํฌ๊ธฐ (์ ๋์ฝ๋ ๋ฌธ์ ํ๋๋ฅผ ์ ์ฅ, ์์๋ฐ์ดํ ‘ ‘๋ก ํํ)
4) ๋
ผ๋ฆฌํ ๋ฐ์ดํฐ ํ์
(Boolean Type)
- boolean: true ๋๋ false ๊ฐ์ ์ ์ฅ (์กฐ๊ฑด๋ฌธ์์ ์์ฃผ ์ฌ์ฉ)
3. ์ฐธ์กฐ ๋ฐ์ดํฐ ํ์
(Reference Data Types)
์ฐธ์กฐ ๋ฐ์ดํฐ ํ์
์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์
๊ณผ ๋ฌ๋ฆฌ, ๊ฐ์ฒด์ ์ฃผ์๋ฅผ ์ ์ฅํฉ๋๋ค.
Java์ ๋ชจ๋ ๊ฐ์ฒด๋ ์ฐธ์กฐ ํ์
์ผ๋ก ์ทจ๊ธ๋ฉ๋๋ค.
๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์ฐธ์กฐ ํ์
์ String์ด๋ฉฐ, ๋ฌธ์์ด์ ์ ์ฅํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
- String: ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์๋ฅผ ์ ์ฅํ๋ ๋ฌธ์์ด ๋ฐ์ดํฐ ํ์
์ฐธ์กฐ ๋ฐ์ดํฐ ํ์
์๋ ๋ฐฐ์ด, ํด๋์ค, ์ธํฐํ์ด์ค ๋ฑ ๋ค์ํ ํ์
์ด ํฌํจ๋๋ฉฐ, ์ด๋ค์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
4. ๋ฐ์ดํฐ ํ์
๋ณํ
Java์์๋ ๋ฐ์ดํฐ ํ์
๋ณํ(type casting)์ ํตํด ๋ณ์์ ํ์
์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ํ์
๋ณํ์๋ ์๋ ํ ๋ณํ๊ณผ ๋ช
์์ ํ ๋ณํ์ด ์์ต๋๋ค.
์๋ ํ ๋ณํ (Implicit Casting): ์์ ํ์
์ ํฐ ํ์
์ผ๋ก ๋ณํํ ๋, ์๋์ผ๋ก ๋ณํ๋ฉ๋๋ค.
int num = 10; double newNum = num; // int์์ double๋ก ์๋ ๋ณํ
|
๋ช
์์ ํ ๋ณํ (Explicit Casting): ํฐ ํ์
์ ์์ ํ์
์ผ๋ก ๋ณํํ ๋, ๋ช
์์ ์ผ๋ก ๋ณํ์ ์ง์ ํด์ผ ํฉ๋๋ค.
double pi = 3.14159; int intPi = (int) pi; // double์์ int๋ก ๋ช
์์ ๋ณํ
|
ํ์
๋ณํ์ ์๋ชป ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ ์์ค์ด ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค.
5. ๋ฐ์ดํฐ ํ์
์ฌ์ฉ ์์
๋ค์์ ๋ค์ํ ๋ฐ์ดํฐ ํ์
์ ์ฌ์ฉํ๋ Java ์ฝ๋ ์์ ์
๋๋ค.
public class DataTypeExample { public static void main(String[] args) { // ์ ์ํ ๋ฐ์ดํฐ ํ์
int age = 25; long distance = 100000000L;
// ์ค์ํ ๋ฐ์ดํฐ ํ์
float weight = 65.5f; double height = 175.8; // ๋ฌธ์ํ ๋ฐ์ดํฐ ํ์
char grade = 'A';
// ๋
ผ๋ฆฌํ ๋ฐ์ดํฐ ํ์
boolean isActive = true;
// ๋ฌธ์์ด ๋ฐ์ดํฐ ํ์
String name = "John Doe";
// ์ถ๋ ฅ System.out.println("Name: " + name); System.out.println("Age: " + age); System.out.println("Height: " + height); System.out.println("Is Active: " + isActive); } }
|
์ถ๋ ฅ ๊ฒฐ๊ณผ:
Name: John Doe Age: 25 Height: 175.8 Is Active: true
|
์ด ์์ ์์๋ ๋ค์ํ ๋ฐ์ดํฐ ํ์
์ ์ ์ธํ๊ณ , ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณ์์ ์ ์ฅํ ํ, System.out.println์ ํตํด ์ถ๋ ฅํฉ๋๋ค.
Java์์ ๋ฐ์ดํฐ ํ์
์ ์ดํดํ๊ณ ์ ์ ํ๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ ํจ์จ์ ์ธ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ๋ฐ ํ์์ ์
๋๋ค.
๊ฐ๊ฐ์ ๋ฐ์ดํฐ ํ์
์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๊ณผ ํํ ๊ฐ๋ฅํ ๊ฐ์ ๋ฒ์๊ฐ ๋ค๋ฅด๋ฏ๋ก, ์ํฉ์ ๋ง๋ ๋ฐ์ดํฐ ํ์
์ ์ ํํ์ฌ ์ฝ๋์ ์ฑ๋ฅ์ ์ต์ ํํ ์ ์์ต๋๋ค.
์ด ํฌ์คํ
์ ํตํด Java์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์
์ ์ดํดํ๊ณ , ์ด๋ฅผ ํตํด ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์ฒซ ๋จ์ถ๋ฅผ ์ ๋ผ์ธ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!
๐ฅ๏ธJava ํ๋ก๊ทธ๋๋ฐ: ๋ฐ์ดํฐ ํ์ (Data Types)
๋ฐฑ์๋ ๊ฐ๋ฐ์๋ก ์ทจ์ ์ ์ค๋นํ๋ฉด์, ํ๋ก๊ทธ๋๋ฐ์ ๊ธฐ์ด์ธ ๋ฐ์ดํฐ ํ์ ์ ๋ํด ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
Java์์๋ ๋ค์ํ ๋ฐ์ดํฐ ํ์ ์ ์ ๊ณตํ๋ฉฐ, ๊ฐ ๋ฐ์ดํฐ ํ์ ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ, ์ฒ๋ฆฌ ์๋, ์ ์ฅ ๊ฐ๋ฅํ ๊ฐ์ ๋ฒ์ ๋ฑ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ Java์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค.
1. ๋ฐ์ดํฐ ํ์ ์ด๋?
๋ฐ์ดํฐ ํ์ (Data Type)์ ๋ณ์์ ์ ์ฅํ ์ ์๋ ๋ฐ์ดํฐ์ ์ข ๋ฅ๋ฅผ ์ ์ํ๋ ๊ฒ์ ๋๋ค.
Java๋ ๊ฐํ์ (strictly-typed) ์ธ์ด๋ก, ๋ณ์๋ฅผ ์ ์ธํ ๋ ๋ฐ๋์ ๋ฐ์ดํฐ์ ํ์ ์ ์ง์ ํด์ผ ํฉ๋๋ค.
์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ ์ ์งํ๊ณ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
Java์ ๋ฐ์ดํฐ ํ์ ์ ํฌ๊ฒ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ (Primitive Data Types)๊ณผ ์ฐธ์กฐ ๋ฐ์ดํฐ ํ์ (Reference Data Types)์ผ๋ก ๋๋ ์ ์์ต๋๋ค.
2. ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ (Primitive Data Types)
๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ Java์์ ์ ๊ณตํ๋ ๊ฐ์ฅ ๋จ์ํ ํํ์ ๋ฐ์ดํฐ ํ์ ์ผ๋ก, ๊ฐ ์์ฒด๋ฅผ ์ ์ฅํฉ๋๋ค.
Java์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ ์ด 8๊ฐ์ง๊ฐ ์์ต๋๋ค.
1) ์ ์ํ ๋ฐ์ดํฐ ํ์ (Integer Types)
2) ์ค์ํ ๋ฐ์ดํฐ ํ์ (Floating-Point Types)
3) ๋ฌธ์ํ ๋ฐ์ดํฐ ํ์ (Character Type)
4) ๋ ผ๋ฆฌํ ๋ฐ์ดํฐ ํ์ (Boolean Type)
3. ์ฐธ์กฐ ๋ฐ์ดํฐ ํ์ (Reference Data Types)
์ฐธ์กฐ ๋ฐ์ดํฐ ํ์ ์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ๊ณผ ๋ฌ๋ฆฌ, ๊ฐ์ฒด์ ์ฃผ์๋ฅผ ์ ์ฅํฉ๋๋ค.
Java์ ๋ชจ๋ ๊ฐ์ฒด๋ ์ฐธ์กฐ ํ์ ์ผ๋ก ์ทจ๊ธ๋ฉ๋๋ค.
๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์ฐธ์กฐ ํ์ ์ String์ด๋ฉฐ, ๋ฌธ์์ด์ ์ ์ฅํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
์ฐธ์กฐ ๋ฐ์ดํฐ ํ์ ์๋ ๋ฐฐ์ด, ํด๋์ค, ์ธํฐํ์ด์ค ๋ฑ ๋ค์ํ ํ์ ์ด ํฌํจ๋๋ฉฐ, ์ด๋ค์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
4. ๋ฐ์ดํฐ ํ์ ๋ณํ
Java์์๋ ๋ฐ์ดํฐ ํ์ ๋ณํ(type casting)์ ํตํด ๋ณ์์ ํ์ ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ํ์ ๋ณํ์๋ ์๋ ํ ๋ณํ๊ณผ ๋ช ์์ ํ ๋ณํ์ด ์์ต๋๋ค.
์๋ ํ ๋ณํ (Implicit Casting): ์์ ํ์ ์ ํฐ ํ์ ์ผ๋ก ๋ณํํ ๋, ์๋์ผ๋ก ๋ณํ๋ฉ๋๋ค.
double newNum = num; // int์์ double๋ก ์๋ ๋ณํ
๋ช ์์ ํ ๋ณํ (Explicit Casting): ํฐ ํ์ ์ ์์ ํ์ ์ผ๋ก ๋ณํํ ๋, ๋ช ์์ ์ผ๋ก ๋ณํ์ ์ง์ ํด์ผ ํฉ๋๋ค.
int intPi = (int) pi; // double์์ int๋ก ๋ช ์์ ๋ณํ
ํ์ ๋ณํ์ ์๋ชป ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ ์์ค์ด ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค.
5. ๋ฐ์ดํฐ ํ์ ์ฌ์ฉ ์์
๋ค์์ ๋ค์ํ ๋ฐ์ดํฐ ํ์ ์ ์ฌ์ฉํ๋ Java ์ฝ๋ ์์ ์ ๋๋ค.
์ถ๋ ฅ ๊ฒฐ๊ณผ:
Age: 25
Height: 175.8
Is Active: true
์ด ์์ ์์๋ ๋ค์ํ ๋ฐ์ดํฐ ํ์ ์ ์ ์ธํ๊ณ , ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณ์์ ์ ์ฅํ ํ, System.out.println์ ํตํด ์ถ๋ ฅํฉ๋๋ค.
Java์์ ๋ฐ์ดํฐ ํ์ ์ ์ดํดํ๊ณ ์ ์ ํ๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ ํจ์จ์ ์ธ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ๋ฐ ํ์์ ์ ๋๋ค.
๊ฐ๊ฐ์ ๋ฐ์ดํฐ ํ์ ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๊ณผ ํํ ๊ฐ๋ฅํ ๊ฐ์ ๋ฒ์๊ฐ ๋ค๋ฅด๋ฏ๋ก, ์ํฉ์ ๋ง๋ ๋ฐ์ดํฐ ํ์ ์ ์ ํํ์ฌ ์ฝ๋์ ์ฑ๋ฅ์ ์ต์ ํํ ์ ์์ต๋๋ค.
์ด ํฌ์คํ ์ ํตํด Java์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ ์ดํดํ๊ณ , ์ด๋ฅผ ํตํด ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์ฒซ ๋จ์ถ๋ฅผ ์ ๋ผ์ธ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!