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();
}
}
결론
자바에서 객체를 생성하고 사용하는 방법은 다음과 같습니다.
- new 키워드를 이용한 객체 생성
- 생성자(Constructor)를 활용한 필드 초기화
- 배열과 ArrayList를 이용한 객체 관리
- 정적 메서드를 통한 객체 생성 (Factory Method 패턴)
이제 다양한 방식으로 객체를 생성하고 활용할 수 있을 거예요! 🚀😊