Java Object Class
앞에서 설명한 도입배경에서 학생의 정보를 출력하는 코드를 작성하였다.
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는 특정 객체를 가르키는 용어이다.
예를 들면,
Student 클래스로 student1 이름의 인스턴스를 생성했다고 할 수 있다.
예를 들면,
String student1 = new Student();
코드를 볼 때Student 클래스로 student1 이름의 인스턴스를 생성했다고 할 수 있다.