Java 클래스와 객체

Java 클래스 및 개체는 개체 지향 프로그래밍의 기본 개념입니다. 이 게시물에서는 구문, 생성 방법 및 작업 방법을 포함하여 Java 클래스 및 개체의 기본 사항을 다룹니다.

Java 클래스

Java 클래스는 특정 유형의 객체를 생성하기 위한 청사진입니다. 다음은 Person이라는 클래스를 만드는 방법의 예입니다.

public class Person {
    String name;
    int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

두 개의 인스턴스 변수(name 및 age)가 있는 Person이라는 클래스를 만듭니다. ) 및 두 개의 매개변수(name 및 age)를 사용하는 생성자. this 키워드는 클래스의 인스턴스 변수를 참조하는 데 사용됩니다.

클래스 사용은 다음과 같은 이점이 있습니다.

  1. 더 나은 코드 구성: Java 클래스를 사용하면 관련 특성과 메서드를 함께 그룹화하여 코드를 더 잘 구성할 수 있습니다. 이렇게 하면 코드를 더 쉽게 읽고 이해하고 유지 관리할 수 있습니다.
  2. 캡슐화: Java 클래스는 캡슐화를 가능하게 합니다. 즉, 클래스의 속성을 비공개로 만들 수 있고 공개 메서드를 통해서만 액세스할 수 있습니다. 이렇게 하면 데이터가 보호되고 프로그램의 다른 부분에서 직접 수정할 수 없습니다.
  3. 재사용성: Java 클래스는 프로그램의 여러 부분에서 재사용할 수 있으므로 보다 효율적으로 개발하고 중복성을 줄일 수 있습니다. 이는 입력/출력 작업과 같은 일반적인 작업을 수행하는 클래스에 특히 유용합니다.
  4. 상속: Java 클래스는 상속을 지원하므로 새 클래스가 기존 클래스를 기반으로 모든 특성과 메서드를 상속할 수 있습니다. 이렇게 하면 코드를 재사용하여 시간과 노력을 절약하고 오류 발생 위험을 줄일 수 있습니다.
  5. 다형성: Java 클래스는 다형성을 지원합니다. 즉, 파생 클래스의 객체를 상위 클래스의 객체로 취급할 수 있습니다. 이를 통해 동일한 코드를 다른 클래스와 함께 사용할 수 있으므로 보다 효율적이고 유연한 프로그래밍이 가능합니다.
  6. 제네릭: Java 클래스는 클래스, 인터페이스 및 메서드를 정의할 때 형식을 매개 변수로 허용하는 제네릭을 지원합니다. 이것은 다른 입력으로 동일한 코드를 재사용하는 방법을 제공하고 유형 캐스팅의 필요성을 제거하여 유형 안전성을 향상시킵니다.

메서드

Java의 메서드는 특정 작업을 수행하는 코드 블록입니다. 메서드는 코드를 재사용 가능한 모듈로 캡슐화하는 데 사용할 수 있으며 프로그램의 다른 부분에서 호출할 수 있습니다. 간단한 방법의 예는 다음과 같습니다.

public static void sayHello() {
    System.out.println("Hello, world!");
}

이 예제에서는 “Hello, world!”를 인쇄하는 sayHello라는 메서드를 정의했습니다.

이 메서드는 public 액세스 한정자로 선언되며, 이는 다른 클래스에서 호출할 수 있음을 의미합니다. 또한 static 한정자로 선언되어 클래스의 인스턴스를 생성하지 않고 호출할 수 있음을 의미합니다.

메소드의 반환 유형은 void, 이는 값을 반환하지 않음을 의미합니다.

이 메서드를 호출하려면 다음과 같이 이름 뒤에 괄호를 사용하면 됩니다.

sayHello(); // Calls the sayHello method

sayHello 메서드를 호출하면 메서드 블록 내부의 코드가 실행되고 “Hello, world!”가 콘솔에 인쇄됩니다.

다음은 매개변수를 받아 값을 반환하는 메서드의 또 다른 예입니다.

public static int square(int num) {
    int result = num * num;
    return result;
}

이 예에서는 정수 매개변수 square라는 메서드를 정의했습니다. 해당 숫자의 제곱을 반환합니다.

이 메서드는 public 및 static 한정자로 선언되며 반환 유형은 입니다. int는 정수 값을 반환한다는 의미입니다.

이 메서드를 호출하려면 다음과 같이 정수 인수를 전달합니다.

int squaredNum = square(5); // Calls the square method with argument 5
System.out.println(squaredNum); // Prints the result (which is 25)

square 메서드를 인수 5로 호출하면 다음의 제곱을 계산합니다. 5, 즉 25이고 결과를 반환합니다. 그런 다음 결과를 squaredNum이라는 변수에 저장하고 콘솔에 출력합니다.

Java의 메소드를 사용하면 프로그램을 더 작고 재사용 가능한 부분으로 분해하여 우리의 코드는 더 모듈화되고 읽고 유지하기가 더 쉽습니다. 또한 메서드에 매개변수를 전달하고 값을 반환하여 더 유연하고 강력한 프로그래밍이 가능합니다.

상속

Java 상속은 새 클래스가 기존 클래스를 기반으로 모든 특성과 메서드를 상속할 수 있도록 하는 개체 지향 프로그래밍의 메커니즘입니다. Java에서는 다른 클래스에서 상속되는 클래스를 하위 클래스 또는 파생 클래스라고 하고 상속되는 클래스를 수퍼 클래스 또는 기본 클래스라고 합니다. 다음은 Java 상속의 예입니다.

class Animal {
    public void eat() {
        System.out.println("I am eating.");
    }
}

class Dog extends Animal {
    public void bark() {
        System.out.println("Woof!");
    }
}

이 예에서는 Animal 및 Dog라는 두 개의 클래스를 정의했습니다. Dog 클래스는 Animal 클래스의 하위 클래스이며 eat 메서드를 상속합니다.

The Animal 클래스에는 “I am eating”을 출력하는 eat라는 메서드가 있습니다. Dog 클래스에는 “Woof!”를 인쇄하는 bark라는 메서드가 있습니다.

이러한 클래스를 사용하려면 Dog 클래스의 인스턴스를 생성하고 해당 메서드를 호출할 수 있습니다.

Dog myDog = new Dog();
myDog.eat(); // Prints "I am eating."
myDog.bark(); // Prints "Woof!"

myDog 개체에서 eat 메서드를 호출하면 Animal 클래스에서 상속된 eat 메소드는 “I am eating”을 출력합니다. myDog 개체에서 bark 메서드를 호출하면 Dog 클래스에 정의된 bark 메서드를 호출하고 “우프!”를 콘솔에 출력합니다.

메서드를 상속하는 것 외에도 서브클래스는 슈퍼클래스의 메소드를 재정의할 수도 있습니다. 다음은 예입니다.

class Animal {
    public void makeSound() {
        System.out.println("The animal makes a sound.");
    }
}

class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Meow!");
    }
}

이 예에서는 Animal 및 Cat의 두 클래스를 정의했습니다. Cat 클래스는 Animal 클래스의 하위 클래스이며 해당 makeSound 메서드를 재정의합니다.

The Animal 클래스에는 “동물이 소리를 냅니다.”를 인쇄하는 makeSound라는 메서드가 있습니다. Cat 클래스에는 “Meow!”를 인쇄하는 makeSound라는 메서드가 있습니다.

이러한 클래스를 사용하려면 Cat 클래스의 인스턴스를 생성하고 makeSound 메서드를 호출할 수 있습니다.

Cat myCat = new Cat();
myCat.makeSound(); // Prints "Meow!"

myCat 개체에서 makeSound 메서드를 호출하면 Cat 클래스에 정의된 makeSound 메서드는 “Meow!”를 출력합니다. 이것은 Java 상속에서 메서드 재정의의 예입니다.

요약하면 Java 상속을 통해 기존 클래스를 기반으로 새 클래스를 생성하고 속성과 메서드를 상속할 수 있습니다. 이것은 코드를 모듈화하고 효율적이며 유지 관리하기 쉽게 만듭니다. 또한 하위 클래스에서 상위 클래스의 메서드를 재정의하여 더 유연하고 강력한 프로그래밍을 할 수 있습니다.

Java 객체

Java 객체는 클래스의 인스턴스입니다. 다음은 Person 클래스의 객체를 만드는 방법에 대한 예입니다.

Person person = new Person("John Doe", 30);

이렇게 하면 이름이 “John Doe”이고 연령이 30인 Person 클래스의 새 객체가 생성됩니다.

다음과 같이 점 표기법을 사용하여 개체의 인스턴스 변수에 액세스할 수 있습니다.

String name = person.name;
int age = person.age;

다음과 같이 객체에 대한 메서드를 호출할 수도 있습니다.

public void sayHello() {
    System.out.println("Hello, my name is " + name + " and I'm " + age + " years old.");
}

person.sayHello();

이것은 person 개체의 sayHello 메서드를 호출합니다.

결론

이 게시물에서는 Java 클래스 및 개체의 기본 사항을 다뤘습니다. 인스턴스 변수와 생성자로 클래스를 만드는 방법, 클래스의 객체를 만드는 방법, 인스턴스 변수에 액세스하고 객체의 메서드를 호출하는 방법을 배웠습니다. 이러한 개념을 이해하면 보다 복잡한 자바 프로그램을 구축하고 유용한 애플리케이션을 만들 수 있습니다.

댓글 남기기

Up ↑

%d 블로거가 이것을 좋아합니다: