[Java] κΈ°μ΄ λ¬Έλ² - λ³μ, μμ, μλ£ν, μ°μ°μ μμ μ 리!
λͺ©μ°¨
Javaλ‘ νλ‘κ·Έλλ°μ μμν λ λ°λμ μ΄ν΄ν΄μΌ νλ κ°λ μ΄ μμ΅λλ€.
λ°λ‘ λ³μ(Variable), μμ(Constant), κ·Έλ¦¬κ³ μλ£ν(Data Type)μ λλ€.
Javaλ μ μ νμ μΈμ΄μ λλ€. μ¦, λ³μλ₯Ό μ μΈν λ μ΄λ€ μ’ λ₯μ λ°μ΄ν°λ₯Ό λ΄μ κ²μΈμ§ λͺ ννκ² μ§μ ν΄μΌ νμ£ .
μ€λμ μλ°μ κ°μ₯ κΈ°λ³Έμ΄ λλ μ΄ μΈ κ°μ§ κ°λ κ³Ό ν¨κ», μ°μ°μκΉμ§ ν λ²μ μ λ¦¬ν΄ λ³΄κ² μ΅λλ€
π¦ λ³μλ?
λ³μλ κ°μ μ μ₯νκΈ° μν λ©λͺ¨λ¦¬ 곡κ°μ λλ€.
Javaμμλ λ³μλ₯Ό μ μΈν λ λ°λμ μλ£νμ λͺ μν΄μΌ ν΄μ.
int age = 25; // λμ΄λ₯Ό μ μ₯νλ λ³μ
String name = "νλΉ"; // μ΄λ¦μ μ μ₯νλ λ³μ
π§ Javaλ μ μ νμ μΈμ΄μ΄κΈ° λλ¬Έμ, Pythonμ΄λ JavaScriptμ²λΌ μλ£νμ μλ μΆλ‘ νμ§ μμ΅λλ€.
λ°λΌμ λ³μ νμ μ λ°λμ μ§μ ν΄μ€μΌ ν΄μ!
π§© Javaμ μλ£ν (Data Type)
Javaμ μλ£νμ ν¬κ² κΈ°λ³Έν(Primitive Type)κ³Ό μ°Έμ‘°ν(Reference Type)μΌλ‘ μΌλ‘ λλ©λλ€.
π κΈ°λ³Έν (Primitive Type)
κΈ°λ³Ένμ κ° μ체λ₯Ό μ μ₯νλ μλ£νμ΄λ©°, μ΄ 8κ°μ§κ° μ‘΄μ¬ν©λλ€.
μλ£ν | ν¬κΈ° | μ€λͺ | μμ |
byte | 1 byte | -128 ~ 127 | byte b = 100; |
short | 2 byte | -32,768 ~ 32,767 | short s = 30000; |
int | 4 byte | μ μ κΈ°λ³Έν | int num = 123; |
long | 8 byte | ν° μ μ κ° | long big = 10000000000L; |
float | 4 byte | μμμ μ«μ (λ¨μ λ) | float f = 3.14f; |
double | 8 byte | μμμ μ«μ (λ°°μ λ) | double d = 3.141592; |
char | 2 byte | λ¬Έμ νλ | char c = 'A'; |
boolean | 1 bit | true / false | boolean isActive = true; |
π‘ μ«μνμ int, μ€μνμ double, λ¬Έμλ char, λ Όλ¦¬λ booleanμ΄ κ°μ₯ μμ£Ό μ°μ λλ€.
π μ°Έμ‘°ν (Reference Type)
μ°Έμ‘°νμ κ°μ΄ μλ κ°μ²΄μ μ£Όμλ₯Ό μ μ₯νλ νμ μ λλ€. λνμ μΌλ‘ ν΄λμ€, λ°°μ΄, μΈν°νμ΄μ€, μ΄κ±°ν λ±μ΄ μ΄μ ν΄λΉν΄μ.
String message = "Hello, Java!";
int[] numbers = {1, 2, 3, 4, 5};
User user = new User(); // μ¬μ©μ μ μ ν΄λμ€
Stringμ κ°μ₯ μμ£Ό μ¬μ©λλ μ°Έμ‘°νμ΄λ©°, λ΄λΆμ μΌλ‘λ char λ°°μ΄λ‘ ꡬμ±λΌ μμ΄μ.
π¬ λ³μλͺ μμ± κ·μΉ
- μ«μλ‘ μμν μ μμ
- μλ¬Έμ, μ«μ, _, $ μ¬μ© κ°λ₯
- Java μμ½μ΄λ μ¬μ©ν μ μμ (int, class λ±)
- μΉ΄λ© μΌμ΄μ€(camelCase) κΆμ₯ → userAge, firstName
π‘ λ³μλͺ μ μλ―Έλ₯Ό λͺ νν μ λ¬ν μ μλλ‘ μμ±νλ κ²μ΄ μ’μ΅λλ€. int a보λ€λ int ageμ²λΌμ!
π§ μμμ 리ν°λ΄
βοΈ μμ (Constants)
μμλ ν λ² κ°μ΄ ν λΉλλ©΄ λ³κ²½ν μ μλ λ³μμ λλ€. Javaμμλ final ν€μλλ₯Ό μ¬μ©ν΄ μ μΈν©λλ€.
final double PI = 3.14159;
final int MAX_USERS = 100;
π‘ μμλ λ³΄ν΅ λλ¬Έμμ μΈλμ€μ½μ΄(_)λ₯Ό μ‘°ν©ν΄ μμ±νλ μ€λ€μ΄ν¬ μΌμ΄μ€(SNAKE_CASE)λ₯Ό κΆμ₯ν©λλ€.
π 리ν°λ΄ (Literals)
리ν°λ΄μ μμ€ μ½λμ μ§μ μμ±λ κ³ μ λ κ°μ λ§ν©λλ€.
int number = 10; // 10μ μ μ 리ν°λ΄
double pi = 3.14; // 3.14λ μ€μ 리ν°λ΄
char grade = 'A'; // 'A'λ λ¬Έμ 리ν°λ΄
String name = "Java"; // "Java"λ λ¬Έμμ΄ λ¦¬ν°λ΄
π νμ λ³ν (Type Casting)
Javaμμλ μλ£νμ΄ λ€λ₯΄λ©΄ λͺ μμ λλ 묡μμ λ³νμ ν΅ν΄ νμ μ μΌμΉμμΌμΌ ν©λλ€.
묡μμ ν λ³ν (μλ)
ν¬κΈ°κ° μμ νμ → ν° νμ μΌλ‘ μλ λ³νλ©λλ€.
int a = 10;
double b = a; // μλ λ³ν
λͺ μμ ν λ³ν (κ°μ )
ν° νμ → μμ νμ μ λͺ μμ νλ³νμ΄ νμν©λλ€. λ°μ΄ν° μμ€μ΄ λ°μν μ μκΈ° λλ¬Έμ μ£Όμν΄μΌ ν©λλ€.
double d = 3.99;
int i = (int) d; // κ²°κ³Ό: 3 (μμμ λ²λ¦Ό)
π§ μ°μ°μ
μ°μ μ°μ°μ
κΈ°λ³Έμ μΈ μν μ°μ°μ μνν©λλ€.
+ // λνκΈ°
- // λΉΌκΈ°
* // κ³±νκΈ°
/ // λλκΈ°
% // λλ¨Έμ§
int a = 10, b = 3;
System.out.println(a / b); // 3
System.out.println(a % b); // 1
μ¦κ° μ°μ°μ
κ°μ 1 μ¦κ°μν€κ±°λ κ°μμν΅λλ€.
int x = 5;
System.out.println(++x); // μ μ μ¦κ°: λ¨Όμ μ¦κ° ν μ¬μ© (6 μΆλ ₯)
System.out.println(x++); // νμ μ¦κ°: λ¨Όμ μ¬μ© ν μ¦κ° (6 μΆλ ₯ ν xλ 7)
System.out.println(--x); // μ μ κ°μ: λ¨Όμ κ°μ ν μ¬μ© (6 μΆλ ₯)
System.out.println(x--); // νμ κ°μ: λ¨Όμ μ¬μ© ν κ°μ (6 μΆλ ₯ ν xλ 5)
λΉκ΅ μ°μ°μ
λ κ°μ λΉκ΅νμ¬ boolean κ²°κ³Όλ₯Ό λ°νν©λλ€.
== // κ°λ€
!= // λ€λ₯΄λ€
> // ν¬λ€
< // μλ€
>= // ν¬κ±°λ κ°λ€
<= // μκ±°λ κ°λ€
System.out.println(10 > 5); // true
System.out.println(10 != 10); // false
λ Όλ¦¬ μ°μ°μ
boolean κ°μ λν μ°μ°μ μνν©λλ€.
&& // AND - λ λ€ trueμΌ λλ§ true
|| // OR - νλλΌλ trueλ©΄ true
! // NOT - λ
Όλ¦¬κ° λ°μ
boolean a = true, b = false;
System.out.println(a && b); // AND: false (λ λ€ trueμ¬μΌ true)
System.out.println(a || b); // OR: true (νλλΌλ trueλ©΄ true)
System.out.println(!a); // NOT: false (λ°μ )
λμ μ°μ°μ
λ³μμ κ°μ ν λΉν©λλ€.
= // λμ
+= // λν΄μ λμ
-= // λΉΌμ λμ
*= // κ³±ν΄μ λμ
/= // λλ μ λμ
int x = 5;
x += 3; // x = x + 3 → xλ 8μ΄ λ¨
λΉνΈ μ°μ°μ
λΉνΈ λ¨μλ‘ μ°μ°μ μνν©λλ€.
& // AND
| // OR
^ // XOR
~ // NOT
<< // μΌμͺ½ μννΈ
>> // μ€λ₯Έμͺ½ μννΈ
>>> // λΆνΈ μλ μ€λ₯Έμͺ½ μννΈ
μΌν μ°μ°μ
쑰건μ λ°λΌ κ°μ μ νν©λλ€.
int age = 20;
String status = (age >= 18) ? "μ±μΈ" : "λ―Έμ±λ
μ";
System.out.println(status); // "μ±μΈ" μΆλ ₯
π μ°μ°μ μ°μ μμ
- κ΄νΈ ()
- λ¨ν μ°μ°μ (++, --, +, -, ~, !)
- μ°μ μ°μ°μ (+, -, *, /, %)
- λΉκ΅ μ°μ°μ (<, <=, >=, ==, !=)
- λ Όλ¦¬ μ°μ°μ (&&, ||, &, |, ^, !)
- μΌν μ°μ°μ
- λμ μ°μ°μ (=, +=, -=, *=, /=, %=)
π‘ 볡μ‘ν μ°μ°μ ν λλ κ΄νΈ ()λ₯Ό μ¬μ©νμ¬ λͺ ννκ² μ°μ μμλ₯Ό μ§μ νλ κ²μ΄ μ’μ΅λλ€.
β λ§λ¬΄λ¦¬
μ€λμ Javaμ κΈ°λ³Έ μ€μ κΈ°λ³ΈμΈ λ³μ, μμ, μ°μ°μμ λν΄ μμ보μμ΅λλ€. μ΄ κ°λ λ€μ λͺ¨λ Java νλ‘κ·Έλ¨μ κΈ°μ΄κ° λλ―λ‘ νμ€ν μ΄ν΄νλ κ²μ΄ μ€μν©λλ€.
Javaλ λ³μ μ μΈ μ νμ μ λͺ μν΄μΌ νκ³ , κ° μλ£νμ λ§λ 리ν°λ΄κ³Ό μ°μ°μλ₯Ό μ¬μ©νλ κ²μ΄ μ€μν©λλ€. κΈ°λ³Έ κ°λ μ΄μ§λ§ μ ννκ² μκ³ μμ΄μΌ μ½λ© μ μ€λ₯λ₯Ό μ€μΌ μ μλ ν΅μ¬ ννΈμ λλ€.
λ€μ μκ°μλ 쑰건문과 λ°λ³΅λ¬Έμ λν΄ μμλ³΄κ² μ΅λλ€. κΆκΈν λ΄μ©μ΄λ μΆκ°λ‘ μκ³ μΆμ κ°λ μ΄ μλ€λ©΄ λκΈλ‘ λ¨κ²¨μ£ΌμΈμ π