Java

자바 클래스(Class)

상상모음 2025. 2. 17. 15:01

 

 

객체 생성과 사용하는방법

package class1;

public class Class2 {
    String name;
    int age;

    // 생성자
    public Class2(String name, int age){
        this.name = name;
        this.age = age;
    }

    // 메서드
    public void introduce(){
        System.out.println("안녕하세요. 저는 "+name+"이고, 나이는 "+age+"살 입니다.");
    }

    public static void main(String[] args) {
        // **객체 생성**
        Class2 person1 = new Class2("남건우",15);
        Class2 person2 = new Class2("남시은",10);

        // **객체의 메서드 호출**
        person1.introduce();
        person2.introduce();
    }
}

 

 

두 번째 예제 

 

package class1;

import java.util.ArrayList;

public class Class1 {

    // 필드 선언
    private String name;
    private int age;
    private int birthDay;
    private String gender;
    private String nickname;

    // 기본 생성자
    public Class1(){

    }

    // 모든 필드를 초기화하는 생성자
    public Class1(String name, int age, int birthDay, String gender, String nickname) {
        this.name = name;
        this.age = age;
        this.birthDay = birthDay;
        this.gender = gender;
        this.nickname = nickname;
    }

    //게터세터
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getBirthDay() {
        return birthDay;
    }

    public void setBirthDay(int birthDay) {
        this.birthDay = birthDay;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    // **객체 정보를 출력하는 메서드 추가**
    public void printInfo(){
        System.out.println("이름 :" + name);
        System.out.println("나이 :" + age);
        System.out.println("생일 :" + birthDay);
        System.out.println("성별 :" + gender);
        System.out.println("닉네임 :" + nickname);
    }

    //출력 메서드
    public static void main(String[] args) {
        // 객체 생성
        Class1 person1 = new Class1("남시은",15, 19981007, "보추", "허접수컷");
        Class1 person2 = new Class1("남시은",15, 19981007, "여성", "패배암컷타락마조년");

        // **객체 정보 출력**
        // **객체의 메서드 호출**
        person1.printInfo();
        System.out.println();
        person2.printInfo();
    }
}

 

 

 

 

생성자를 활용한 다양한 객체 생성 방식

생성자는 객체를 만들 때 필드를 초기화하는 역할을 합니다.

 

class Animal {
    String type;

    // 기본 생성자
    public Animal() {
        this.type = "알 수 없음";
    }

    public void showType() {
        System.out.println("이 동물의 종류: " + type);
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Animal(); // 기본 생성자 호출
        animal.showType();
    }
}

 

 

매개변수 있는 생성자 사용

 

package class1;

public class Car {
    String brand;
    int year;

    // 매개변수 있는 생성자
    public Car(String brand, int year){
        this.brand = brand;
        this.year = year;
    }

    public void showCarInfo(){
        System.out.println("자동차 브랜드 : " + brand + ", 제조년도: " + year);
    }


    public static void main(String[] args) {
        Car myCar = new Car("현대", 2025);
        myCar.showCarInfo();
    }
}

 

 

 

 

객체 배열을 이용한 여러 객체 생성

객체를 여러 개 저장하려면 배열을 사용할 수 있습니다.

 

 public static void main(String[] args) {
        // **객체 생성**
        Class2 person1 = new Class2("남건우",15);
        Class2 person2 = new Class2("남시은",10);

        // **객체의 메서드 호출**
        person1.introduce();
        person2.introduce();

        // 객체 배열 선언 및 초기화
        Class2[] people = {
                new Class2("이순신", 45),
                new Class2("유관순", 18),
                new Class2("세종대왕", 50)
        };

        // 배열의 각 객체의 메서드 호출
        for (Class2 c : people){
            c.introduce();
        }

        
    }

 

 

객체 리스트 (ArrayList) 활용

객체를 동적으로 관리하려면 ArrayList를 사용할 수 있습니다.

 

//Class2로 구현

ArrayList<Class2> personList = new ArrayList<>();

        personList.add(new Class2("남시은", 10));
        personList.add(new Class2("남아영", 15));

        for (Class2 c : personList){
            c.introduce();
        }

 

 

정적(static) 메서드를 사용한 객체 생성

정적 메서드를 활용하여 객체를 생성할 수도 있습니다.

 

package class1;

public class Student {
    String name;
    int grade;

    private Student(String name, int grade){
        this.name = name;
        this.grade = grade;
    }

    //정적 메서드를 통한 객체 생성
    public static Student createStudent(String name, int grade){
        return new Student(name, grade);
    }

    public void printInfo(){
        System.out.println("학생 이름 : " + name + ", 학년: " + grade);
    }

    public static void main(String[] args) {
        Student student1 = Student.createStudent("남건우", 5);
        Student student2 = Student.createStudent("남건우", 1);

        student1.printInfo();
        student2.printInfo();
    }
}

 

 

 

결론

자바에서 객체를 생성하고 사용하는 방법은 다음과 같습니다.

  1. new 키워드를 이용한 객체 생성
  2. 생성자(Constructor)를 활용한 필드 초기화
  3. 배열과 ArrayList를 이용한 객체 관리
  4. 정적 메서드를 통한 객체 생성 (Factory Method 패턴)

이제 다양한 방식으로 객체를 생성하고 활용할 수 있을 거예요! 🚀😊