Java - λ³€μˆ˜

이호인·2022λ…„ 7μ›” 29일
0

μžλ°” 기초

λͺ©λ‘ 보기
1/4

πŸ“Œ λ³€μˆ˜λž€?

  • ν•˜λ‚˜μ˜ 값을 μ €μž₯ν•  수 μžˆλŠ” μ €μž₯곡간

πŸ“Œ λ³€μˆ˜μ˜ μ„ μ–Έ

  • λ³€μˆ˜μ— μ €μž₯ν•  값이 μ–΄λ–€ 것이냐에 따라 νƒ€μž…μ„ μ •ν•΄μ£Όμ–΄μ•Ό ν•œλ‹€.
  • μ €μž₯곡간이 μ„œλ‘œ ꡬ별될 수 μžˆμ–΄μ•Ό ν•˜κΈ°μ— λ³€μˆ˜μ˜ 이름 λ˜ν•œ ν•„μš”ν•˜λ‹€.
int x;
  • λ‹€μŒκ³Ό 같은 λ¬Έμž₯이 μˆ˜ν–‰λ˜λ©΄ xλΌλŠ” μ΄λ¦„μ˜ λ³€μˆ˜(μ €μž₯곡간)이 생긴닀.
  • λ³€μˆ˜μ— 값을 μ €μž₯ν•˜λ €λ©΄ λ‹€μŒκ³Ό 같은 λ¬Έμž₯을 μ‹€ν–‰ν•œλ‹€.
x = 5;
  • μ£Όμ˜ν•΄μ•Όν•  점은 μ—¬κΈ°μ„œ =λŠ” 'κ°™μŒ'을 μ˜λ―Έν•˜λŠ” 것이 μ•„λ‹ˆλ‹€.
  • 였λ₯Έμͺ½μ˜ 값을 μ™Όμͺ½μ— μ €μž₯ν•˜λΌλŠ” 말이며 'λŒ€μž… μ—°μ‚°μž'라고 ν•œλ‹€.
  • λ³€μˆ˜μ—λŠ” 단 ν•˜λ‚˜μ˜ κ°’λ§Œ μ €μž₯ν•  수 있고, 이미 값이 μ €μž₯된 λ³€μˆ˜μ— μƒˆλ‘œμš΄ 값을 μ €μž₯ν•˜λ €ν•˜λ©΄ 기쑴의 κ°’ λŒ€μ‹  μƒˆλ‘œμš΄ 값이 μ €μž₯λœλ‹€.
int x = 0; // μ²˜μŒλΆ€ν„° λ³€μˆ˜κ°’ μ €μž₯κ³Ό 선언을 λ™μ‹œμ— ν•  수 μžˆλ‹€.
x = 5;
x = 7;
x = 10;
System.out.println(x);
// xλŠ” 10이 좜λ ₯λœλ‹€.

πŸ“Œ λ³€μˆ˜μ˜ ν•„μš”μ„±

  • 훨씬 νŽΈλ¦¬ν•˜κ²Œ μ½”λ“œμ˜ 변경을 쀄일 수 있고 잘 지어진 λ³€μˆ˜λͺ…은 μ½”λ“œ νŒŒμ•…μ„ μ‰½κ²Œ λ§Œλ“ λ‹€.
System.out.println(5 + 3);
System.out.println(5 - 3);
System.out.println(5 * 3);
System.out.println(5 / 3);
  • 이 μ½”λ“œμ—μ„œ λ§Œμ•½ λ‹€λ₯Έ μˆ«μžλ“€μ˜ 계산 κ²°κ³Όλ₯Ό μ•Œκ³  μ‹Άλ‹€λ©΄ 변경점이 λ§Žμ•„μ§€μ§€λ§Œ
x = 5;
y = 3;
System.out.println(x + y);
System.out.println(x - y);
System.out.println(x * y);
System.out.println(x / y);
  • 이런 μ‹μœΌλ‘œ μ‚¬μš©ν•˜κ²Œ λœλ‹€λ©΄ x, y κ°’λ§Œ λ³€κ²½ν•˜μ—¬ 계산 κ²°κ³Όλ₯Ό μ‰½κ²Œ 얻을 수 μžˆλ‹€.

πŸ“Œ λ³€μˆ˜λͺ… μž‘λͺ… κ·œμΉ™

  1. λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•œλ‹€.
  2. λ³€μˆ˜μ˜ 이름은 숫자둜 μ‹œμž‘ν•  수 μ—†λ‹€.
  3. $, _ μ΄μ™Έμ˜ νŠΉμˆ˜λ¬ΈμžλŠ” μ‚¬μš©ν•  수 μ—†λ‹€.
  4. ν‚€μ›Œλ“œ(μ˜ˆμ•½μ–΄)λŠ” λ³€μˆ˜μ˜ μ΄λ¦„μœΌλ‘œ μ‚¬μš©ν•  수 μ—†λ‹€.

ν‚€μ›Œλ“œλž€? μ»΄νŒŒμΌλŸ¬κ°€ 해석할 λ•Œ 이미 μ§€μ •λœ 뜻이 μžˆλŠ” 경우 (ex. int, String λ“±λ“±)

πŸ“Œ λ³€μˆ˜μ˜ νƒ€μž…

  • μžλ°”μ˜ λ³€μˆ˜μ—λŠ” κΈ°λ³Έν˜• (primitive type)κ³Ό μ°Έμ‘°ν˜• (reference type)이 μžˆλ‹€.
  • κΈ°λ³Έν˜•μ€ λ©”λͺ¨λ¦¬μ˜μ—­μ˜ μŠ€νƒμ˜μ—­μ— μ‹€μ œ 값이 μ €μž₯λœλ‹€.
  • μ°Έμ‘°ν˜•μ€ μ‹€μ œ μΈμŠ€ν„΄μŠ€λŠ” νž™ μ˜μ—­μ— μƒμ„±λ˜κ³  κ·Έ μ˜μ—­μ˜ μ£Όμ†Œλ₯Ό μŠ€νƒμ˜μ—­μ—μ„œ μ €μž₯ν•˜κ²Œ λœλ‹€.
  • κΈ°λ³Έν˜• : 계산을 ν•˜κΈ° μœ„ν•œ μ‹€μ œ 값을 μ €μž₯ν•œλ‹€.
    - λ…Όλ¦¬ν˜• (boolean)
    - λ¬Έμžν˜• (char)
    - μ •μˆ˜ν˜• (short, byte, int, long)
    - μ‹€μˆ˜ν˜• (float, double)

  • μ°Έμ‘°ν˜• : 객체의 μ£Όμ†Œλ₯Ό μ €μž₯ν•œλ‹€. 기본적으둜 Java.long.Objectλ₯Ό 상속받을 경우 μ°Έμ‘°ν˜•μ΄ λœλ‹€. 즉, κΈ°λ³Έν˜• μ œμ™Έν•˜κ³ λŠ” μ°Έμ‘°ν˜•

  • λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ λ³€μˆ˜μ˜ νƒ€μž…μ€ λ³€μˆ˜μ— μ €μž₯ν•  κ°’μ˜ μ’…λ₯˜μ— λ§žλŠ” 것을 μ„ νƒν•˜λ©΄ λœλ‹€. (달라도 ν—ˆμš©λ˜λŠ” κ²½μš°κ°€ μžˆκΈ΄ν•¨.)

πŸ“Œ νƒ€μž… λ²”μœ„

πŸ“Œ μƒμˆ˜μ™€ λ¦¬ν„°λŸ΄

  • μƒμˆ˜
    값을 μ €μž₯ν•  수 μžˆλŠ” 곡간 + ν•œλ²ˆ 값을 μ €μž₯ν•˜λ©΄ λ‹€λ₯Έ κ°’μœΌλ‘œ λ³€κ²½ ν•  수 μ—†μŒ
    λ³€μˆ˜ νƒ€μž… μ•žμ— finalμ΄λΌλŠ” ν‚€μ›Œλ“œλ₯Ό λΆ™μ—¬μ„œ μ‚¬μš©
final int MAX_SPEED = 10;

MAX_SPEED = 200; // μ—λŸ¬ λ°œμƒ, μƒμˆ˜μ— μ €μž₯된 값은 λ³€κ²½ν•  수 μ—†λ‹€.
  • λ¦¬ν„°λŸ΄
    μ›λž˜λŠ” μœ„ μ˜ˆμ œμ—μ„œ 10, 200 이런 값듀이 μƒμˆ˜μ΄μ§€λ§Œ, ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μƒμˆ˜λ₯Ό λ‹€λ₯Έ κ°’μœΌλ‘œ λ³€κ²½ν•  수 μ—†λŠ” κ°’μœΌλ‘œ μ •μ˜ν–ˆκΈ° λ•Œλ¬Έμ— ꡬ뢄을 μœ„ν•΄ μ‚¬μš©ν•˜λŠ” μš©μ–΄μ΄λ‹€. κ·Έλƒ₯ κ·Έ 자체의 값을 μ˜λ―Έν•œλ‹€.

πŸ“Œ νƒ€μž… κ°„μ˜ λ³€ν™˜λ°©λ²•

  • ν˜•λ³€ν™˜μ€ 자주 μ‚¬μš©λœλ‹€. λͺ‡κ°€μ§€λ§Œ 정리
String str = "3";

System.out.println('3' - '0' + 1) // 문자 '3'μ—μ„œ '0'을 λΊ΄μ£Όλ©΄ 숫자둜 λ³€ν™˜, κ°’ 4
System.out.println(Integer.parseInt("3") + 1) // λ¬Έμžμ—΄ -> 숫자, κ°’ 4
System.out.println("3" + 1) // μžλ™μœΌλ‘œ 1이 λ¬Έμžμ—΄λ‘œ ν˜•λ³€ν™˜μ΄ λ˜μ–΄ κ°’ 31

reference!

μžλ°”μ˜ 정석 기초편
https://futurecreator.github.io/2017/01/27/java-variable-data-type/
https://catsbi.oopy.io/6541026f-1e19-4117-8fef-aea145e4fc1b
https://jammdev.tistory.com/70

profile
곡뢀 기둝

0개의 λŒ“κΈ€