Java Object Class

Java Object Class 도입 배경
자바 라이브러리 대부분 클래스와 객체로 되어있다. 자바를 잘 활용하기 위해서는 클래스와 객체에 대한 이해는 필수불가결이다. 클래스로 작성된 Java 코드 학생 두 명의 정보를 출력하는 프로그램. 각 학생은 이름, 나이, 성적을 갖고 있다. 요구사항 * 첫 번째 학생 이름을 ”홍길동”, 나이는 18, 성적 90 * 두 번째 학생 이름을 ”김철수”, 나이는 15, 성적

앞에서 설명한 도입배경에서 학생의 정보를 출력하는 코드를 작성하였다.
Student라는 클래스를 사용하고 실행보도록 한다.

Student 클래스 작성하기

코드 작성 전 Student.class 파일을 만들어주자.

  • core 디렉토리 아래로 Student.class 신규 파일 생성

Student.class 코드 작성

package core;

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

class 키워드로 Student 클래스를 정의하였다. 이 Student 클래스 내부에는 name, age, grade 멤버 변수를 갖게 되었다.

멤버 변수, 필드

클래스에 정의한 변수들은 멤버 변수 또는 필드라고 한다.

  • Member Variable 특정 클래스에 소속된 멤버 변수
  • Field 데이터 항목을 가르킨다. 주로 엑셀, 데이터베이스에서 데이터 각각의 컬럼을 가르킨다.
💡
멤버 변수, 필드는 같은 의미로 사용하고, 클래스에 소속된 멤버이다.

클래스 이름을 지을 때 대문자로 시작하고 카멜케이스 표기법으로 사용한다.
예) Student, MemberService,

MainStudent 신규 클래스로 main 코드 작성하기

먼저 core 디렉토리 아래의 MainStudent.class로 생성하였다.

MainStudent.class 코드 작성

public class MainStudent {
    public static void main(String[] args) {
        Student student1;
        student1 = new Student();

        student1.name = "홍길동";
        student1.age = 18;
        student1.grade = 90;

        Student student2;
        student2 = new Student();

        student2.name = "김철수";
        student2.age = 15;
        student2.grade = 85;

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

main 코드 출력 결과

이름: 홍길동, 나이: 18, 성적: 90
이름: 김철수, 나이: 15, 성적: 85
  • Student student1; 변수 Student 클래스를 선언한다.
  • student1 = new Student(); new 키워드로 Student 크기의 메모리 인스턴스를 만들어 student1로 할당한다.
  • 생성한 인스턴스 student1는 점(.)으로 name, age, grade 멤버 변수를 접근하여 홍길동, 18, 90 를 입력할 수 있었다.
  • student2 마찬가지로 "김철수"라는 학생을 추가한다.
💡
Object는 생성한 student1, student2 모두 객체라고 부른다.
클래스로 정의한 속성과 기능을 가졌지만, 독립적으로 존재한다.

클래스와 사용자 정의 타입

  • Type은 데이터의 종류형태로 나타낸다.
  • 사용자 직접 타입은 구조화된 설계도 의미이다.
    • 즉, 자바에서의 설계도는 클래스이다.
  • 클래스는 int 와 String 처럼 Student 라는 타입을 만들어 사용한 모습을 볼 수 있었다.
    • int와 String 같은 사용자 정의 타입으로 클래스를 직접 만들어낸다.
  • 클래스를 사용기 위해서는 new 객체 또는 인스턴스로 실제 메모리 공간을 만들어주어야 한다.

용어

  • Class: 미리 사용자 정의 타입으로 작성한 Student 클래스라는 설계도를 만들었다.
    클래스 Student타입으로 변수들을 양산하듯이 사용할 것이다.
  • Object, Instance: 클래스 Student로 생성한 student1, student2는 instance 또는 Object라 한다.

student1, student2 인스턴스를 직접 출력하면?

Java 추가 코드

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

Java 추가 코드 실행

core.Student@b4c966a
core.Student@2f4d3709
  • student1 student2 를 출력하면 인스턴스의 참조변수를 확인할 수 있다.
💡
Instance는 특정 객체를 가르키는 용어이다.
예를 들면, String student1 = new Student(); 코드를 볼 때
Student 클래스로 student1 이름의 인스턴스를 생성했다고 할 수 있다.