Study/김영한의 실전자바

[김영한의 실전 자바] - 기본편 섹션 2. 클래스와 데이터

곰삼이 2025. 6. 1. 16:11

클래스 도입 

public class Student {
    String name;
    int age;
    int grade;

}

 

- 클래스에서 정의한 변수들을 멤버 변수 = 필드라고 함. 

 

public class classStart1 {
    public static void main(String[] args) {
        String student1Name="학생1";
        int student1Age=15;
        int student1Grade=90;

        String student2Name="학생2";
        int student2Age=16;
        int student2Grade=80;

        System.out.println("이름: "+student1Name + "나이:"+student1Age+"성적" +student1Grade);



    }
}

 

-클래스의 사용자 정의 타입

1. 클래스를 사용하면 int,String과 같은 타입을 직접 만들 수 있음. 

이것을 사용자가 직접 정의한 타입이라는 뜻으로 '사용자 정의 타입'이라고 한다. 

2. 사용자 정의 타입을 만들려면 설계도가 필요하다. 이것이 바로 클래스!  설계도 = 클래스 

설계도인 클래스를 사용해서 실제 메모리에 만들어진 실체를 객체 또는 인스턴스라 한다. 

3. 클래스를 통해서 사용자가 원하는 종류의 데이터 타입을 마음껏 정의할 수 있다. 

 

용어 

클래스 : 객체를 생성하기 위한 설계도 

객체:  클래스를 기반으로 만들어진 실체 

인스턴스: 객체와 같은 의미이지만, 좀 더 관계에 초첨을 맞춘 단어. 특정 클래스로부터 그 객체가 생성되었음을 강조할 때 사용한다. 

 

배열 도입 - 리펙토링 

public class ClassStart5 {
    public static void main(String[] args) {
        Student student1 = new Student();
        student1.name= "힉생1";
        student1.age=15;
        student1.grade=90;

        Student student2 = new Student();
        student2.name="학생2";
        student2.age=16;
        student2.grade=100;

        Student [] students = {student1,student2};

        //for문 - 1
        for(int i=0; i<students.length; i++){
            System.out.println("이름:"+ students[i].name+" 나이:"+ students[i].age+" 성적:"+ students[i].grade);

        }
        //for문 - 2
        for(int i=0; i<students.length; i++){
            Student s = students[i];
            System.out.println("이름:"+s.name+" 나이:"+ s.age+" 성적:"+ s.grade);
        }
        //for문 - 3
        for(Student s: students){
            System.out.println("이름:"+s.name+" 나이:"+ s.age+" 성적:"+ s.grade);

        }
    }

}