클래스를 알아보기 전에 객체를 먼저 알고 넘어가야 할 것 같아서 객체를 먼저 정리함
물리적으로 존재 혹은 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지면서 식별이 가능한 것
현실세계에서 일어나는 모든 현상은 객체와 객체 간의 상호작용으로 이루어져있음
ex) 물리적으로 존재하는 책,사람 or 추상적으로 존재하는 강의, 주문 등
ex2) 사람은 이름, 나이등의 속성과 웃다, 걷다 등의 동작이 있음
자바에서 이 속성과 동작은 필드(field)와 메서드(method)라고 부름.
현실세계의 객체를 소프트웨어 객체로 설계하는것을 객체 모델링(object modeling) 이라고 함
사람이 계산기를 이용하면 계산기는 계산 결과를 사람에게 알려주는 상호작용을 함
소프트웨어도 마찬가지로 다른 객체와 서로 상호작용을 하면서 동작.
이때 객체가 다른 객체의 기능을 이용하는 것이 메소드 호출
메모리에서 사용하고 싶은 객체가 있다면 우선 설계도로 해당 객체를 만드는 작업이 필요함
이때 설계도가 클래스(class)임
클래스에는 객체를 생성하기 위한 필드와 메소드가 정의되어 있음
클래스로부터 만들어진 객체를 해당 클래스의 인스턴스(instance)라고 함
ex) 자동차 객체는 자동차 클래스의 인스턴스
그리고 클래스로부터 객체를 만드는 과정을 인스턴스화라고 함
개발자 --(설계)--> 클래스(설계도) --(인스턴스화)--> 인스턴스(객체)
클래스의 용도는 두 가지가 있음
1. 라이브러리(API : Application Program Interface)
2. 실행용(excute)
라이브러리 클래스 -> 다른 클래스에서 이용할 목적
실행 클래스 -> main() 메소드를 제공
프로그램에서 클래스가 100개라면 실행 클래스 1개를 제외한 나머지는 모두 라이브러리 클래스
클래스의 구성 멤버 필드(Field), 생성자(Constructor), 메소드(Method)
필드는 객체의 고유 데이터 및 부품 객체, 상태 정보를 저장하는 곳.
선언하는 형태는 변수와 비슷하나 차이가 있음
변수 - 생성자와 메소드 내에서만 사용, 생성자와 메소드의 실행이 종료되면 자동 소멸
필드 - 생성자와 메소드 전체에서 사용, 객체가 소멸되지 않는 한 객체와 함께 존재
생성자는 new 연산자로 호출되는 특별한 중괄호{} 블록.
객체 생성 시 초기화를 담당함
필드를 초기화하거나 메소드를 호출해서 객체를 사용할 준비를 함
생성자는 메소드와 비슷한 형태를 띄고 있으나, 클래스 이름으로 되어있고 리턴 타입 X
메소드는 객체의 동작에 해당하는 중괄호{} 블록
중괄호 블록은 이름을 가지고 있음. 중괄호 블록의 이름 == 메소드 이름
메소드는 필드를 읽고 수정하는 역할도 하지만 다른 객체를 생성해서 다양한 기능을 수행하기도 함
메소드는 객체 간의 데이터를 전달하는 수단.
ex) 외부로부터 매개값 받아 실행에 이용, 실행 후 결과 값 외부로 리턴
필드 - 객체의 데이터가 저장되는 곳
생성자 - 객체 생성 시 초기화 역할
메소드 - 객체의 동작에 해당하는 실행 블록
이번 글은 필드, 생성자, 메소드등을 자세하게 다루는 글이 아닌 클래스를 설명하기 위한 글이므로 더 자세하게 공부해야 할 부분은 추후에 게시할 예정입니다.
수정해야 할 부분이 있으면 댓글 남겨주세요.
흥미롭군요