1. 사용자 지정타입
타입이란 데이터의 형태나 종류다. int, String은 자바에서 기본으로 제공하는 타입이다. 하지만 경우에 따라서 임의의 타입을 지정해야되는 경우가 있다. 예를 들어 학생정보를 관리할 때 이름, 키, 성적을 한 묶음으로 관리하고자 할 때 타입을 정의하는 것이 좋다. 이때 학생을 본따 만든 데이터의 형태를 사용자 지정타입이라고 한다.
2. 클래스와 객체
사용자 지정타입을 만들기 위해 자바는 클래스를 제공한다. 사용자지정타입이 설계도이면 클래스는 설계도를 자바로 표현한 것이다. 클래스는 다음과 같다.
public class Student {
String name;
int grade;
int age;
}
- class: 자바에게 클래스임을 알려주는 키워드다.
- Student: 클래스의 이름의 첫글자는 대문자다.
- name, grade, age: 클래스 내부의 변수는 멤버변수 또는 필드라고 부른다.
사용자지정타입을 실제로 구현한 것을 객체라고 한다. 즉, 객체는 클래스를 따라 만든 데이터덩어리다. 객체는 메모리에 존재한다.
public class ClassStart3 {
public static void main(String[] args){
Student student1; // Student 자료형의 변수 선언
student1 = new Student(); // 객체 생성
student1.age = 20; // 필드에 값 대입
student1.grade = 90; // 필드에 값 대입
student1.name = "학생1"; // 필드에 값 대입
System.out.println("이름: " + student1.name + " 나이: " + student1.age + " 성적: " + student1.grade);
}
}
객체는 new 키워드를 통해 생성한다.
Student student1 = new Student(); // 객체 생성
객체의 필드는 접근연산자(.)을 통해 수정할 수 있다.
student1.age = 20; // 필드에 값 대입
student1.grade = 90; // 필드에 값 대입
student1.name = "학생1"; // 필드에 값 대입
클래스를 통해 사용자가 우너하는 종류의 데이터 타입을 마음껏 정의할 수 있다.
3. 정리
- 사용자지정타입이란 임의로 지정한 데이터의 형태 · 종류다.
- 클래스란 객체의 설계도로서 사용자지정타입을 표현한 것이다. 클래스는 객체가 가질 속성(필드)와 메서드를 정의한다.
- 객체란 클래스(설계도)를 따라 만든 실체다. 클래스가 자동차 설계도라면 객체는 설계도를 따라 만든 자동차다.