class Person {
String name;
int age;
}
클래스는 형태만 정의되어 있고 실제 데이터는 없음.
Person p = new Person("홍길동", 20);
객체가 만들어질 때 자동 실행되어 값 초기화를 담당.
Person(String name, int age) {
this.name = name;
this.age = age;
}
인스턴스 변수 → 객체마다 값이 다름
static 변수 → 모든 객체가 공유하는 하나의 값
static int count = 0;
System.out.println(Person.count);
void printInfo() {
System.out.println("이름: " + name + ", 나이: " + age);
}
p.printInfo();
Person[] arr = new Person[3];
arr[i] = new Person(name, age);
OOP의 핵심은 역할 분리와 구조화.
int maxScore = -1; int maxIndex = 0;
for (int i = 0; i < index; i++) {
if (students[i].score > maxScore) {
maxScore = students[i].score;
maxIndex = i;
}
}
return students[maxIndex];
double avg = manager.getAverage();
System.out.printf("평균 점수: %.2f", avg);
Person, Student 등의 클래스를 직접 만들고, 생성자·메서드를 정의하고, new 로 객체를 생성하여 배열에 저장하고 출력하는 연습을 진행함.
학생 여러 명을 객체 배열로 저장하고,
등의 기능을 OOP 방식으로 구현해봄.
오늘은 “클래스 설계 → 객체 생성 → 배열로 관리 → 최고·평균 계산”까지 객체지향의 흐름을 처음으로 완성한 하루였다. 아직 낯선 개념이 많지만, 절차형 사고에서 구조적(OOP) 사고로 넘어가는 중요한 전환점이었다.