Java์์๋ ๋ฐ์ดํฐ ํ์ ์ ํฌ๊ฒ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ (Primitive Data Types)๊ณผ ๋น๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ (Non-Primitive Data Types)์ผ๋ก ๋๋ ์ ์์ต๋๋ค. ๋น๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ฉฐ, ๋ณ์์ ๋ฐ์ดํฐ ์์ฒด๊ฐ ์๋ ๋ฐ์ดํฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ ์ฅํฉ๋๋ค. ๋น๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์๋ ํด๋์ค, ๋ฐฐ์ด, ๋ฌธ์์ด, ์ธํฐํ์ด์ค ๋ฑ์ด ์์ผ๋ฉฐ, ๋ค์ํ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ ์ฒ๋ฆฌํ๋ ๋ฐ ํ์์ ์ธ ์ญํ ์ ํฉ๋๋ค. ์ด๋ฒ ๊ธ์์๋ Java์ ๋น๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ๊ณผ ๊ทธ ํ์ฉ๋ฒ์ ์์ ์ ํจ๊ป ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋น๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ด๋?
๋น๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ๊ณผ ๋ฌ๋ฆฌ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ ํ์ ์ ๋๋ค. ์ฐธ์กฐ ํ์ ์ Java์์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ๊ธฐ๋ฐ์ด ๋๋ฉฐ, ๊ธฐ๋ณธ ํ์ ๊ณผ ๋ฌ๋ฆฌ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋น๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ ๋ณ์์๋ ๋ฐ์ดํฐ ์์ฒด๊ฐ ์๋, ํด๋น ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ์ ์ฅ๋ฉ๋๋ค.
Java์ ์ฃผ์ ๋น๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์
Java์ ๋น๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ๋ค์ด ์์ต๋๋ค:
- ํด๋์ค (Class)
- ๋ฌธ์์ด (String)
- ๋ฐฐ์ด (Array)
- ์ธํฐํ์ด์ค (Interface)
๊ฐ ๋น๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ ํน์ง๊ณผ ์ฌ์ฉ๋ฒ์ ์์ ๋ฅผ ํตํด ์์๋ณด๊ฒ ์ต๋๋ค.
1. ํด๋์ค (Class)
ํด๋์ค๋ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํต์ฌ ์์๋ก, ๊ฐ์ฒด์ ์ฒญ์ฌ์ง ์ญํ ์ ํฉ๋๋ค. ํด๋์ค๋ ๊ฐ์ฒด์ ์์ฑ๊ณผ ๋์์ ์ ์ํ๋ฉฐ, ์ด๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. Java์์๋ ํด๋์ค ํ์ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํฉ๋๋ค.
ํด๋์ค ์ ์ธ ์์
public class Car {
String model;
int year;
// ์์ฑ์
public Car(String model, int year) {
this.model = model;
this.year = year;
}
// ๋ฉ์๋
public void displayInfo() {
System.out.println("๋ชจ๋ธ: " + model + ", ์ฐ๋: " + year);
}
}
public class Main {
public static void main(String[] args) {
Car myCar = new Car("Tesla Model 3", 2023); // ๊ฐ์ฒด ์์ฑ
myCar.displayInfo(); // ๋ฉ์๋ ํธ์ถ
}
}
์ถ๋ ฅ ๊ฒฐ๊ณผ:
๋ชจ๋ธ: Tesla Model 3, ์ฐ๋: 2023
์ ์์ ์์๋ Car
๋ผ๋ ํด๋์ค๋ฅผ ์ ์ํ๊ณ , Car
ํด๋์ค์ ๊ฐ์ฒด myCar
๋ฅผ ์์ฑํ์ต๋๋ค. myCar
๋ ํด๋์ค์ ์์ฑ model
๊ณผ year
๋ฅผ ์ฐธ์กฐํ๋ฉฐ, ๋ฉ์๋ displayInfo()
๋ฅผ ํธ์ถํ์ฌ ๊ฐ์ฒด ์ ๋ณด๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
2. ๋ฌธ์์ด (String)
String
์ ๋ฌธ์๋ฅผ ์ ์ฅํ๊ณ ์กฐ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํด๋์ค์
๋๋ค. Java์์ ๋ฌธ์์ด์ ์ฐธ์กฐ ํ์
์ด์ง๋ง, ๊ธฐ๋ณธ ํ์
์ฒ๋ผ ๊ฐ๋จํ๊ฒ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ""
๋ก ๊ฐ์ธ์ ํํํฉ๋๋ค. String
์ ๋ถ๋ณ(immutable)ํ๋ฉฐ, ๋ฌธ์์ด ์กฐ์์ ์ํ ๋ค์ํ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
String ์์
public class StringExample {
public static void main(String[] args) {
String greeting = "Hello, Java!";
String name = "Alice";
String message = greeting + " " + name;
System.out.println("์ธ์ฌ ๋ฉ์์ง: " + message);
System.out.println("๋ฉ์์ง ๊ธธ์ด: " + message.length());
System.out.println("๋๋ฌธ์๋ก ๋ณํ: " + message.toUpperCase());
}
}
์ถ๋ ฅ ๊ฒฐ๊ณผ:
์ธ์ฌ ๋ฉ์์ง: Hello, Java! Alice
๋ฉ์์ง ๊ธธ์ด: 16
๋๋ฌธ์๋ก ๋ณํ: HELLO, JAVA! ALICE
์ ์ฝ๋์์๋ String
์ ์ฐ๊ฒฐ, ๊ธธ์ด ๊ตฌํ๊ธฐ, ๋๋ฌธ์ ๋ณํ ๋ฑ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ๋ค๋ฃน๋๋ค.
3. ๋ฐฐ์ด (Array)
๋ฐฐ์ด์ ๊ฐ์ ํ์
์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์๋ฃ ๊ตฌ์กฐ์
๋๋ค. ๋ฐฐ์ด์ ๊ณ ์ ๋ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ฉฐ, ๊ฐ ์์๋ ์ธ๋ฑ์ค๋ฅผ ํตํด ์ ๊ทผํ ์ ์์ต๋๋ค. Java์์ ๋ฐฐ์ด์ ๊ฐ์ฒด๋ก ์ทจ๊ธ๋๋ฉฐ, []
๊ธฐํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ธํฉ๋๋ค.
๋ฐฐ์ด ์์
public class ArrayExample {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5}; // ์ ์ํ ๋ฐฐ์ด ์ ์ธ ๋ฐ ์ด๊ธฐํ
System.out.println("๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์: " + numbers[0]);
System.out.println("๋ฐฐ์ด ๊ธธ์ด: " + numbers.length);
System.out.print("๋ฐฐ์ด ์์: ");
for (int num : numbers) {
System.out.print(num + " ");
}
}
}
์ถ๋ ฅ ๊ฒฐ๊ณผ:
๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์: 1
๋ฐฐ์ด ๊ธธ์ด: 5
๋ฐฐ์ด ์์: 1 2 3 4 5
์ ์ฝ๋์์๋ ๋ฐฐ์ด numbers
๋ฅผ ์ ์ธํ๊ณ , ๊ฐ ์์์ ์ ๊ทผํ์ฌ ๋ฐฐ์ด์ ๊ฐ์ ์ถ๋ ฅํฉ๋๋ค. numbers.length
๋ฅผ ํตํด ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
4. ์ธํฐํ์ด์ค (Interface)
์ธํฐํ์ด์ค๋ ํด๋์ค๊ฐ ๊ตฌํํด์ผ ํ ๋ฉ์๋๋ฅผ ์ ์ํ๋ ์ถ์ ํ์ ์ ๋๋ค. ์ธํฐํ์ด์ค๋ ๋คํ์ฑ์ ์ง์ํ๋ฉฐ, ์ฌ๋ฌ ํด๋์ค๊ฐ ๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ์ฌ ์ผ๊ด๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
์ธํฐํ์ด์ค ์์
interface Animal {
void sound(); // ์ถ์ ๋ฉ์๋
}
class Dog implements Animal {
public void sound() {
System.out.println("๋ฉ๋ฉ");
}
}
class Cat implements Animal {
public void sound() {
System.out.println("์ผ์น");
}
}
public class InterfaceExample {
public static void main(String[] args) {
Animal myDog = new Dog();
Animal myCat = new Cat();
myDog.sound();
myCat.sound();
}
}
์ถ๋ ฅ ๊ฒฐ๊ณผ:
๋ฉ๋ฉ
์ผ์น
์ ์ฝ๋์์๋ Animal
์ธํฐํ์ด์ค๋ฅผ ์ ์ธํ๊ณ , Dog
์ Cat
ํด๋์ค๊ฐ ์ด๋ฅผ ๊ตฌํํฉ๋๋ค. sound()
๋ฉ์๋๋ฅผ ํตํด ๊ฐ ํด๋์ค์ ๊ณ ์ ํ ์๋ฆฌ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
๋น๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ๊ณผ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ ์ฐจ์ด
- ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ ๊ณ ์ ๋ ํฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฐจ์งํ๋ฉฐ, ๊ฐ ์์ฒด๋ฅผ ์ ์ฅํฉ๋๋ค.
- ๋น๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ ๊ฐ์ฒด์ ์ฐธ์กฐ๋ฅผ ์ ์ฅํ๋ฉฐ, ๋ค์ํ ๋ฐ์ดํฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ๋น๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์
์
null
๊ฐ์ ๊ฐ์ง ์ ์๋ ๋ฐ๋ฉด, ๊ธฐ๋ณธ ํ์ ์null
์ ๊ฐ์ง ์ ์์ต๋๋ค.
๊ฒฐ๋ก
Java์ ๋น๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ค์ํ ์์๋ก, ๋ฐ์ดํฐ์ ๋ฉ์๋๋ฅผ ํฌํจํ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ ์ญํ ์ ํฉ๋๋ค. ํด๋์ค, ๋ฐฐ์ด, ๋ฌธ์์ด, ์ธํฐํ์ด์ค์ ๊ฐ์ ๋น๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ ํ๋ก๊ทธ๋จ์ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ๊ฐ๋ ฅํ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค. ๊ฐ ๋น๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ ํน์ง๊ณผ ํ์ฉ๋ฒ์ ์ ์ดํดํ๊ณ ์ค์ ํ๋ก์ ํธ์์ ํจ์จ์ ์ผ๋ก ํ์ฉํด ๋ณด์ธ์!
๋๊ธ ์ฐ๊ธฐ