TIL#08_1 Java

Mixerยท2022๋…„ 5์›” 4์ผ
0
post-thumbnail

๐Ÿง‘๐Ÿปโ€๐Ÿ’ป

๋ณ€์ˆ˜(Variable)๋ž€?

ํƒ€์ž…์ด ๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜๋ผ๋ฉด, ๋ณ€์ˆ˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ ๊ณต๊ฐ„์„ ์˜๋ฏธ

๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋ฅผ ์ •๋ฆฌํ•˜๋ฉด ํฌ๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ ๊ณต๊ฐ„์„ ํ™•๋ณด
  • ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์™€ ํ˜‘์—… ์‹œ ๋ฐ์ดํ„ฐ์— ์ด๋ฆ„(๋ณ€์ˆ˜๋ช…)์„ ๋ถ™์—ฌ ์†Œํ†ต
  • ๋ฐ์ดํ„ฐ๋ฅผ ์žฌ์‚ฌ์šฉ

๋ณ€์ˆ˜์˜ ์„ ์–ธ๊ณผ ํ• ๋‹น

์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์ „์— ๋น„์œ ํ•˜๋ฉด, ์‚ฌ์ „์— ๋“ฑ๋ก๋œ ๋‹จ์–ด๋งŒ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋งŒ์•ฝ ์‚ฌ์ „์— ๋“ฑ๋ก๋˜์ง€ ์•Š์€ ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋ฉด, ์ง์ ‘ ์‚ฌ์ „์— ๋“ฑ๋ก์„ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

์ด๋ฅผ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ํ• ๋‹น ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.
๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฐ„์„ ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ํ™•๋ณดํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ,
๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์€ ์„ ์–ธ์„ ํ†ตํ•ด ํ™•๋ณดํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ,

int number; // ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค

number = 6; // ์„ ์–ธํ•œ ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค.

int number = 6; // ์„ ์–ธ๊ณผ ํ• ๋‹น์„ ๋™์‹œ์— ํ•  ์ˆ˜ ์žˆ๋‹ค.
// ์ด์ฒ˜๋Ÿผ ๋™์‹œ์— ํ•˜๋Š” ๊ฒƒ์„ '์ดˆ๊ธฐํ™”'๋ผ๊ณ  ์นญํ•œ๋‹ค
// ์ฆ‰, '์ •์ˆ˜ํ˜• ๋ณ€์ˆ˜ number๋ฅผ ์„ ์–ธํ•˜๊ณ , 6์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค'๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฃผ์˜ํ•  ์ , ๋Œ€์ž… ์—ฐ์‚ฐ์ž์ธ '=' ์ด๋‹ค.
์ˆ˜ํ•™์—์„œ ๋งํ•˜๋Š” ๋™๋“ฑํ•˜๋‹ค์˜ ์˜๋ฏธ๊ฐ€ ์•„๋‹Œ, ์˜ค๋ฅธ์ชฝ ๊ฐ’์„ ์™ผ์ชฝ์— ์ €์žฅํ•˜๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค.
๋ณ€์ˆ˜๋Š” ๋ง ๊ทธ๋Œ€๋กœ '๋ณ€ํ•˜๋Š” ์ˆ˜'์ด๊ธฐ ๋•Œ๋ฌธ์— ์žฌํ• ๋‹น์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

int number = 6;
System.out.println(number); // 6์ด ์ถœ๋ ฅ๋œ๋‹ค
number = 9; // number ๋ณ€์ˆ˜์— 9๋ฅผ ์ €์žฅํ•œ๋‹ค.(๊ธฐ์กด ๊ฐ’ 6์€ ์‚ญ์ œ)
System.out.println(number); // 9๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

๋ณ€์ˆ˜๋ช… ์ง“๊ธฐ

๋ณ€์ˆ˜๋ช…์€ ์˜๋ฌธ์ž(๋Œ€,์†Œ๋ฌธ์ž)๋‚˜ ์ˆซ์ž,_๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
์ž๋ฐ”์—์„œ ๋ณ€์ˆ˜๋ช…์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์นด๋ฉœ์ผ€์ด์Šค(camelCase)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์นด๋ฉœ์ผ€์ด์Šค๋ž€?

๋‚™ํƒ€ ๋“ฑ ๋ชจ์–‘์„ ๋‹ฎ์•˜๋‹ค๊ณ  ํ•ด์„œ ๋ถ™์—ฌ์ง„ ์ด๋ฆ„์œผ๋กœ, ๋‘ ๋ฒˆ์งธ ๋‹จ์–ด๋ถ€ํ„ฐ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด ๊ตฌ๋ถ„ํ•œ๋‹ค.

int camelCase;

์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๋ณ€์ˆ˜๋ช…

  • ์ˆซ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ณ€์ˆ˜๋ช…
int 10Age; // ์‚ฌ์šฉ ๋ถˆ๊ฐ€
  • ์ž๋ฐ”์—์„œ ์ด๋ฏธ ์‚ฌ์šฉ ์ค‘์ธ ์˜ˆ์•ฝ์–ด(reserved word)
int byte;
int class;

๋ณ€์ˆ˜๋ช…์€ ์‚ฌ์šฉ ๋ชฉ์ ์— ๋งž๊ฒŒ ์ž‘๋ช…ํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค, ์ž˜ ๋™์ž‘ํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋ฐ˜๋“œ์‹œ ์ž˜ ์ง  ์ฝ”๋“œ๋ผ๊ณ  ํ•  ์ˆ˜ ์—†๋‹ค.
์ข‹์€ ์ฝ”๋“œ๋Š” ์ž˜ ๋™์ž‘ํ•  ๋ฟ ์•„๋‹ˆ๋ผ, ์‚ฌ๋žŒ์—๊ฒŒ๋„ ์ž˜ ์ฝํžˆ๋Š” ์ฝ”๋“œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

๐Ÿง‘๐Ÿปโ€๐Ÿซ ์ฝ๊ธฐ ์ข‹์€ ์ฝ”๋“œ๋Š” ์ž˜ ์ง€์€ ๋ณ€์ˆ˜๋ช…์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘๋œ๋‹ค.

์ƒ์ˆ˜๋ž€?

์ƒ์ˆ˜(Constant)๋Š” ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ˆ˜์ด๋ฉด์„œ, ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ณ€ํ•˜๋ฉด ์•ˆ๋˜๋Š” ์ˆ˜, ์ฆ‰ ๊ณ ์ • ๊ฐ’์ด๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ ๊ณ ์ •๋œ ๊ฐ’(ํŠน์ • ์ธ๋ฌผ์˜ ์ƒ๋…„์›”์ผ, ์„ฑ๋ณ„ ๋“ฑ)์ด ๋  ์ˆ˜๋„ ์žˆ๊ณ , ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ƒ๊ฐํ•˜๊ธฐ์— ๋ณ€ํ•˜์ง€ ์•Š์•„์•ผ ํ•˜๋Š” ๊ฐ’์ด ๋  ์ˆ˜๋„ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๊ณ„์‚ฐ๊ธฐ๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ํ•  ๋•Œ ์›์ฃผ์œจ์˜ ๊ฐ’, ์ฆ‰ pi(ฯ€)๋ฅผ ๊ณฑํ•˜๋Š” ์—ฐ์‚ฐ์„ ํ•œ๋‹ค๋ฉด ๋งค๋ฒˆ pi๋ฅผ ์ƒˆ๋กœ ์“ฐ๊ธฐ๋ณด๋‹ค๋Š” ์ƒ์ˆ˜๋กœ ์„ ์–ธํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ด๋‹ค.
์ˆซ์ž๋ฅผ ์ž˜๋ชป ์ž…๋ ฅํ•˜๋Š” ์‹ค์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ , ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ

final double CALCULATOR_PI = 3.14;

์ž๋ฐ”์—์„œ ์ƒ์ˆ˜๋Š” ์ตœ์ข…์„ ์˜๋ฏธํ•˜๋Š” final ์˜ˆ์•ฝ์–ด๋ฅผ ์‚ฌ์šฉํ•ด ์„ ์–ธํ•œ๋‹ค
์ƒ์ˆ˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋Œ€๋ฌธ์ž์— ์–ธ๋”์Šค์ฝ”์–ด(_)๋ฅผ ๋„ฃ์–ด ๊ตฌ๋ถ„ํ•˜๋Š” SCREAMING_SNAKE_CASE ๋ฅผ ์‚ฌ์šฉ

์ƒ์ˆ˜๋ฅผ ์™œ ์“ธ๊นŒ?

  • ์˜คํƒ€๋กœ ์ธํ•œ ์—๋Ÿฌ๋ฅผ ๋ฐฉ์ง€
  • ๋ณ€๊ฒฝํ•˜๋ฉด ์•ˆ ๋˜๋Š” ๊ฐ’์„ ๋ณด์กด
  • ๋ฐ์ดํ„ฐ๋ฅผ ์žฌ์‚ฌ์šฉ

๋ฆฌํ„ฐ๋Ÿด์ด๋ž€?

์‚ฌ์ „์ ์œผ๋กœ ๋ฆฌํ„ฐ๋Ÿด(Literal)์€ '๋ฌธ์ž ๊ทธ๋Œ€๋กœ์˜' ๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ฆฌํ„ฐ๋Ÿด์ด๋ž€ ๋ฌธ์ž๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’ ๊ทธ ์ž์ฒด ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

๋ฆฌํ„ฐ๋Ÿด์€ ๊ฐ’๊ณผ ๋™์ผํ•œ ๊ฐœ๋…์ด ์•„๋‹ˆ๋‹ค, ๊ฐ’์€ ๋ฆฌํ„ฐ๋Ÿด์ด ํ‰๊ฐ€๋˜์–ด ๋งŒ๋“ค์–ด์ง„ ์ผ์ข…์˜ ๊ฒฐ๊ณผ
์˜ˆ๋ฅผ ๋“ค์–ด, 50 ์ด๋ผ๋Š” ์ •์ˆ˜ํ˜• ๋ฆฌํ„ฐ๋Ÿด์€ ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์— 50์ด๋ผ๋Š” ๊ฐ’์„ ์ƒ์„ฑํ•œ๋‹ค,

'๋ฆฌํ„ฐ๋Ÿด์€ ํ‰๊ฐ€๋˜์–ด ๋ฆฌํ„ฐ๋Ÿด์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฌธ์ž ๊ทธ๋Œ€๋กœ์˜ ๊ฐ’์„ ์ƒ์„ฑํ•˜๋‹ˆ, ๋ฆฌํ„ฐ๋Ÿด์€ ๊ณง ๊ฐ’ ๊ทธ ์ž์ฒด๋‹ค'

// ์ •์ˆ˜ํ˜• ๋ฆฌํ„ฐ๋Ÿด 20์„ ์ •์ˆ˜ํ˜• ๋ณ€์ˆ˜ currentAge์— ํ• ๋‹น
int currentAge = 20;

// ์‹ค์ˆ˜ํ˜• ๋ฆฌํ„ฐ๋Ÿด 3.14159๋ฅผ ์‹ค์ˆ˜ํ˜• ๋ณ€์ˆ˜ pi์— ํ• ๋‹น
double pi = 3.14159;

// ๋…ผ๋ฆฌํ˜• ๋ฆฌํ„ฐ๋Ÿด true๋ฅผ ๋…ผ๋ฆฌํ˜• ๋ณ€์ˆ˜ boolean์— ํ• ๋‹น
boolean isGenius = true;

// ๋ฌธ์žํ˜• ๋ฆฌํ„ฐ๋Ÿด 'A'๋ฅผ ๋ฌธ์žํ˜• ๋ณ€์ˆ˜ firstAlphabet์— ํ• ๋‹น
char firstAlphabet = 'A';

// ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด "minThug"๋ฅผ ๋ฌธ์ž์—ด ํƒ€์ž… ๋ณ€์ˆ˜ learnedAt์— ํ• ๋‹น
String learnedAt = "minThug";
  • float ํƒ€์ž…์˜ ๋ณ€์ˆ˜์— ์‹ค์ˆ˜ํ˜• ๋ฆฌํ„ฐ๋Ÿด์„ ํ• ๋‹นํ•  ๋•Œ, ์ ‘๋ฏธ์‚ฌ f๋ฅผ ๋ถ™์—ฌ์ฃผ์–ด์•ผ ํ•œ๋‹ค.
  • long ํƒ€์ž…์˜ ๋ณ€์ˆ˜์— ์ •์ˆ˜ํ˜• ๋ฆฌํ„ฐ๋Ÿด์„ ํ• ๋‹นํ•  ์‹œ, ์ ‘๋ฏธ์‚ฌ L๋ฅผ ๋ถ™์—ฌ์ฃผ์–ด์•ผ ํ•œ๋‹ค.
float weight = 74.5f;
final long LIGHT_YEAR = 9472999314L;

ํƒ€์ž… ๋ณ€ํ™˜

์ž๋ฐ”์—์„œ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ํƒ€์ž…์„ ๋ช…์‹œ ํ•ด์ค˜์•ผ ํ•œ๋‹ค๊ณ  ํ–ˆ๋‹ค.
boolean์„ ์ œ์™ธํ•œ ๊ธฐ๋ณธ ํƒ€์ž… 7๊ฐœ๋Š” ์„œ๋กœ ํƒ€์ž…์„ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ž๋™ ํƒ€์ž… ๋ณ€ํ™˜

๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ์—๋Š” ํƒ€์ž…์ด ์ž๋™์œผ๋กœ ์ „ํ™˜๋œ๋‹ค.

  • ๋ฐ”์ดํŠธ ํฌ๊ธฐ๊ฐ€ ์ž‘์€ ํƒ€์ž…์—์„œ ํฐ ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ
  • ๋œ ์ •๋ฐ€ํ•œ ํƒ€์ž…์—์„œ ๋” ์ •๋ฐ€ํ•œ ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ (ex. ์ •์ˆ˜โžก๏ธ์‹ค์ˆ˜)
byte(1) -> short(2)/char(2) -> int(4) -> long(8) -> float(4) -> double(8)
// ๊ด„ํ˜ธ ์•ˆ์˜ ์ˆซ์ž๋Š” ๋ฐ”์ดํŠธ์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

์œ„์—์„œ float์€ 4 ๋ฐ”์ดํŠธ์ธ๋ฐ int์™€ long๋ณด๋‹ค ๋’ค์ชฝ์— ์œ„์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด์œ ๋Š” float์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ด ๋” ์ •๋ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ

long longValue = 12345L;
float floatValue = longValue;
// float์ด long๋ณด๋‹ค ์ •๋ฐ€ํ•˜๋ฏ€๋กœ, ์ž๋™์œผ๋กœ ํƒ€์ž…์ด ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.

System.out.println(floatValue); 
// 12345.0์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

์ˆ˜๋™ ํƒ€์ž… ๋ณ€ํ™˜

๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์ด ๋” ํฐ ํƒ€์ž…์—์„œ ์ž‘์€ ํƒ€์ž…์œผ๋กœ๋Š” ์ž๋™์œผ๋กœ ํƒ€์ž…์ด ๋ณ€ํ™˜๋˜์ง€ ์•Š๋Š”๋‹ค.
์ด๋•Œ ๋” ํฐ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ž‘์€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๋ณ€์ˆ˜์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค, ์ด๋ฅผ ์บ์ŠคํŒ…(casting)์ด๋ผ ํ•œ๋‹ค.

์บ์ŠคํŒ… ์—ฐ์‚ฐ์ž์ธ ()๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์—ฐ์‚ฐ์ž ์•ˆ์—๋Š” ๋ณ€ํ™˜ํ•˜๊ณ ์ž ํ•˜๋Š” ํƒ€์ž…์„ ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

int intValue = 128;
byte byteValue = (byte)intValue;
//int ํƒ€์ž…์œผ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜ intValue๋ฅผ ๋” ์ž‘์€ ๋‹จ์œ„์ธ byte๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
System.out.println(byteValue);
//์ถœ๋ ฅ๊ฐ’์€ byte์˜ ์ตœ๋Œ€ ํ‘œํ˜„ ๊ฐ’์ธ 127์ด ์•„๋‹ˆ๋ผ -128์ž…๋‹ˆ๋‹ค. 
//ํ‘œํ˜„ ๋ฒ”์œ„๋ฅผ ๋„˜์œผ๋ฉด ํ•œ ๋ฐ”ํ€ด๋ฅผ ๋Œ์•„ ์Œ์ˆ˜๋กœ ์ถœ๋ ฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
profile
Minthug'life

0๊ฐœ์˜ ๋Œ“๊ธ€