[JAVA] 김영한의 실전 자바 ; 클래스와 데이터

선뀰·2023년 12월 21일
0

JAVA

목록 보기
9/25

클래스

클래스는 여러 함수와 변수를 한 번에 묶어서 관리하기 위해 사용된다.

public static void main(String[] args) {
        // 이 코드는 한계가 있다.
        String[] studentNames = {"학생1", "학생2", "학생3", "학생4"};
        int[] studentAges = {15, 16, 17, 20};
        int[] studentGrade = {90, 80, 80, 60};
        for(int i = 0; i < studentNames.length; i++){
            System.out.println("이름 : " + studentNames[i] + " 나이 : " + studentAges[i] + " 성적 : " + studentGrade[i]);
        }
    }

이름, 나이, 성적을 따로 나누어 관리하면 관리하기 좋은 방식이 아니다. -> 하나로 묶어주어야 한다. 객체를 생성

클래스 도입

클래스를 사용해서 학생이라는 개념을 만들고, 학생 별로 본인의 이름, 나이, 성적을 관리하는 것이다.

  • Student 클래스
    package class1;

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

  • 멤버 변수 : 클래스에 정의한 변수들이다. 또는 필드라고 한다.
  • 필드(Field) : 데이터 항목을 가르키는 용어이다. 데이터베이스, 엑셀 등에서 데이터 각각의 항목을 필드라고 한다.

= 멤버 변수, 필드는 같은 뜻이다.

클래스와 사용자 정의 타입

클래스를 사용하면 int, String과 같은 타입을 직접 만들 수 있다.
사용자가 직접 정의하는 사용자 정의 타입을 만들려면 설계도가 필요하다. = 클래스
실제 메모리에 만들어진 실체를 객체 또는 인스턴스라고 한다.

  • 클래스 : 설계도
  • 객체(인스턴스) : 실제 메모리에 만들어진 실체
    ex. 학생(Student) 클래스를 기반으로 학생1(student1), 학생2(student2)객체 또는 인스턴스를 만만들 수 있다.

Student student1
Student 타입을 받을 수 있는 변수를 선언한다.
int는 정수를, String은 문자를 담을 수 있듯이 Student는 Student타입의 객체(인스턴스)를 받을 수 있다.

객체 생성

student1 = new Student() // Student 인스턴스 생성
객체를 사용하기 위해 클래스 기반으로 객체(인스턴스)를 생성해야 한다.
new Student() : new는 새로 생성한다는 뜻이다.
클래스 정보를 기반으로 새로운 객체를 생성하라는 뜻이다.
실제 Student 객체(인스턴스)를 생성한다.

객체를 생성할 때 new 클래스명()을 사용한다.
Student클래스는 String name, int age,int grade 멤버 변수를 가지고 있다. 메모리 공간도 함께 확보한다.

class1 Student;
        student1 = new class1(); //변수를 통해 학생을 사용할 수 있다.
        student1.name = "학생1"; //클래스는 .을 통해 접근 가능하다.
        student1.age = 15;
        student1.grade = 90;

        class1 student2 = new class1();
        student2.name = "학생2";
        student2.age = 15;
        student2.grade = 80;

        System.out.println(student1);
        System.out.println(student2);

        System.out.println("이름: " + student1.name + " 나이: " + student1.age + " 성적 : " + student1.grade);
        System.out.println("이름: " + student2.name + " 나이: " + student2.age + " 성적 : " + student2.grade);

클래스, 객체, 인스턴스 정리

클래스 Class

객체를 생성하기 위한 '틀', '설계도' 객체가 가져야 할 속성(변수)와 기능(메서드)를 정의한다.

객체 Object

클래스에서정의한 속성과 기능을 가진 실체이다. 객체는 서로 독립적인 상태를 가진다.
student1, student2는 같은 클래스에서 만들어졌지만 다른 객체이다.

인스턴스 Instance

특정 클래스로부터 생성된 객체를 의미한다. student1객체는 Student클래스의 인스턴스이다.

객체 vs 인스턴스

클래스에서 나온 실체라는 의미에서 비슷하게 사용, 인스턴스는 객체보다 좀 더 관계에 초점을 맞춘 단어이다. student1은 Student의 인스턴스이다. 라고 특정 클래스와의 관계를 명확히 할 때 인스턴스라는 용어를 주로 사용한다. = 관계지향적이다. 보통 둘을 구분하지 않고 사용한다.

profile
공부 기록

0개의 댓글