"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Java 마스터하기: 클래스, 메소드, 상속 및 캡슐화

Java 마스터하기: 클래스, 메소드, 상속 및 캡슐화

2024-07-31에 게시됨
검색:553

Mastering Java: Classes, Methods, Inheritance, and Encapsulation

Java는 강력한 애플리케이션을 구축하는 데 널리 사용되는 다재다능하고 강력한 프로그래밍 언어입니다. 이 기사에서는 클래스, 메소드, 상속 및 캡슐화와 같은 Java의 기본 개념 중 일부를 살펴보겠습니다. 이러한 개념은 Java에서 객체 지향 프로그래밍(OOP)의 중추를 형성하며 효율적이고 유지 관리가 가능한 코드를 작성하는 데 필수적입니다.

Java 클래스
Java에서 클래스는 객체를 생성하기 위한 청사진입니다. 데이터와 데이터에 대해 작동하는 메소드를 하나의 단일 단위로 묶어 데이터 유형을 정의합니다. 다음은 Java 클래스의 기본 예입니다.

public class Animal {
    // Fields
    private String name;
    private int age;

    // Constructor
    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // Method
    public void displayInfo() {
        System.out.println("Name: "   name   ", Age: "   age);
    }
}

이 예에서는:

Animal은 이름과 나이라는 두 가지 필드가 있는 클래스입니다.
생성자 Animal(String name, int age)은 이러한 필드를 초기화합니다.
displayInfo 메소드는 동물의 이름과 나이를 인쇄합니다.
Java의 메소드
메소드는 클래스에서 생성된 객체의 동작을 설명하는 클래스 내부에 정의된 함수입니다. 메소드는 매개변수를 취하고, 작업을 수행하고, 값을 반환할 수 있습니다.

Animal 클래스에 더 많은 메서드를 추가하는 방법은 다음과 같습니다.

public class Animal {
    private String name;
    private int age;

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

    public void displayInfo() {
        System.out.println("Name: "   name   ", Age: "   age);
    }

    // New method to change the age
    public void setAge(int newAge) {
        age = newAge;
    }

    // New method to retrieve the age
    public int getAge() {
        return age;
    }
}

이 수정된 클래스에서:

setAge 메소드를 사용하면 동물의 나이를 변경할 수 있습니다.
getAge 메소드는 동물의 현재 나이를 반환합니다.
Java의 상속
상속은 새 클래스가 기존 클래스의 속성과 동작(필드 및 메서드)을 상속하는 메커니즘입니다. 상속받는 클래스를 서브클래스(또는 파생 클래스)라고 하고, 상속받은 클래스를 슈퍼클래스(또는 기본 클래스)라고 합니다.

다음은 상속의 예입니다.

// Superclass
public class Animal {
    private String name;
    private int age;

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

    public void displayInfo() {
        System.out.println("Name: "   name   ", Age: "   age);
    }
}

// Subclass
public class Dog extends Animal {
    private String breed;

    public Dog(String name, int age, String breed) {
        super(name, age);
        this.breed = breed;
    }

    public void displayBreed() {
        System.out.println("Breed: "   breed);
    }
}

이 예에서는:

Animal은 필드 이름과 나이, 그리고 메소드 displayInfo를 포함하는 슈퍼클래스입니다.
Dog는 Animal을 확장하고 새로운 필드 품종과 displayBreed 메서드를 추가하는 하위 클래스입니다.
Dog 생성자의 super(name, age) 호출은 Animal 슈퍼클래스의 생성자를 호출합니다.
Java의 캡슐화
캡슐화는 단일 단위로 데이터를 마무리하는 것입니다. 이는 코드와 코드가 조작하는 데이터를 함께 묶는 메커니즘입니다. 캡슐화를 달성하는 한 가지 방법은 클래스의 필드를 비공개로 만들고 공개 getter 및 setter 메서드를 제공하여 필드 값을 수정하고 보는 것입니다.

동물 클래스를 캡슐화하는 방법은 다음과 같습니다.

public class Animal {
    // Private fields
    private String name;
    private int age;

    // Constructor
    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // Getter method for name
    public String getName() {
        return name;
    }

    // Setter method for name
    public void setName(String name) {
        this.name = name;
    }

    // Getter method for age
    public int getAge() {
        return age;
    }

    // Setter method for age
    public void setAge(int age) {
        this.age = age;
    }

    // Method to display information
    public void displayInfo() {
        System.out.println("Name: "   name   ", Age: "   age);
    }
}

이 캡슐화된 클래스에서는:

필드 이름과 연령은 비공개입니다.
이러한 필드에 액세스하고 수정하기 위해 공용 getter 및 setter 메소드가 제공됩니다.
이렇게 하면 클래스 외부에서 필드에 직접 액세스할 수 없으므로 객체 데이터의 무결성이 보호됩니다.

클래스, 메소드, 상속 및 캡슐화를 이해하는 것은 Java 및 객체 지향 프로그래밍을 마스터하는 데 중요합니다. 이러한 개념을 사용하면 재사용 및 유지 관리가 가능한 모듈식 코드를 만들 수 있습니다. 이러한 예제를 실험하고, 자신만의 클래스와 메서드를 구축하고, 상속과 캡슐화를 활용하여 강력한 애플리케이션을 설계하세요. 즐거운 코딩하세요!

릴리스 선언문 이 글은 https://dev.to/shahtanya/mastering-java-classes-methods-inheritance-and-encapsulation-44c0?1에서 복제됩니다.1 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3