Responsive Advertisement

Java ๋น„๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…(Non-Primitive Data Types): ํด๋ž˜์Šค, ๋ฐฐ์—ด, ์ธํ„ฐํŽ˜์ด์Šค ํ™œ์šฉํ•˜๊ธฐ

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์˜ ๋น„๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ค‘์š”ํ•œ ์š”์†Œ๋กœ, ๋ฐ์ดํ„ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค, ๋ฐฐ์—ด, ๋ฌธ์ž์—ด, ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ฐ™์€ ๋น„๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ๊ฐ•๋ ฅํ•œ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋น„๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ํŠน์ง•๊ณผ ํ™œ์šฉ๋ฒ•์„ ์ž˜ ์ดํ•ดํ•˜๊ณ  ์‹ค์ œ ํ”„๋กœ์ ํŠธ์—์„œ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•ด ๋ณด์„ธ์š”!

๋Œ“๊ธ€ ์“ฐ๊ธฐ