반응형

[Oracle Java Tutorial을 읽고 순서에 의해 정리한 후 본인의 경험과 이해를 바탕으로 작성된 글임을 밝힌다.]

[Java Tutorial, 자바 프로그래밍 기초 배우기, Java Programming, 자바 튜토리얼]

진정 자바 프로그래머라면 이제부터 잘 봐야 한다. 객체지향 프로그램인 자바(Java)는 클래스(Class)를 잘 이해하고 다뤄야 한다. 이번 포스팅부터 클래스에 대해 파헤쳐 본다. 물론 자바 튜토리얼을 기반으로 한다.

클래스 (Classes)

클래스 선언 (Declaring Classes)

객체지향 개념 때 이미 클래스 구조에 대해 알아보았다. 클래스를 정의하는 방법은 아래와 같다.

class TestClass{

//필드, 생성자 그리고 메서드 구현 (fields, constructor and method)

}

이 클래스를 이용해서 객체를 생성하고 그 객체의 생명 주기를 위한 모든 소스 코드를 클래스 내에 구현한다. 생성자는 객체를 초기화해서 생성할 때 사용하고 클래스의 상태를 제공하는 필드를 선언하고 클래스와 그 객체의 행위를 구현한 메서드들이 바로 클래스의 소스 코드들이다.

 

 

위의 클래스 선언은 아주 기본적인 부분이다. 사실 클래스를 만들 때 단순하게 이름과 해당 코드만 코딩하는 경우는 드물다. 관련 슈퍼클래스(superclass)를 선언하고 상속(extends)받고 인터페이스(interface)를 구현(implements)하기도 한다.

class TestClass extends TestSuperClass implements TestInterface {

//필드, 생성자 그리고 메서드 구현 (fields, constructor and method)

}

또한 클래스 선언부 제일 앞쪽에 public, private같은 접근 관련 수식어를 사용할 수 있다. 이는 다른 클래스의 접근권한에 대한 정의로 다음 포스팅에서 다뤄볼 것이다.

클래스를 선언할 때 아래와 같은 컴포넌트를 사용할 수 있다.

  1. public, private 등 접근권한 수식어를 사용할 수 있다.

  2. 클래스명은 대문자로 시작한다.

  3. 클래스는 오직 1개의 슈퍼클래스만 확장(extends)할 수 있고 extends 뒤에 슈퍼클래스를 선언한다.

  4. 클래스는 1개 이상의 인터페이스(Interface)를 구현할 수 있고 “,”를 사용해서 여러 개의 인터페이스를 implements 키워드 뒤에 나열해서 사용한다.

  5. 클래스의 몸체는 중괄호 { } 로 감싼다.

지금까지 클래스의 선언하는 방법에 대해 알아보았다. 그리 어려운 부분은 없지만 잘 숙지해야 한다. 자바 프로그래머는 항상 클래스를 다뤄야 하기 때문이다.

반응형
반응형

[Oracle Java Tutorial을 읽고 순서에 의해 정리한 후 본인의 경험과 이해를 바탕으로 작성된 글임을 밝힌다.]

[Java Tutorial, 자바 프로그래밍 기초 배우기, Java Programming, 자바 튜토리얼, 객체지향 프로그래밍]

2019/06/06 - [Software/Java] - [Java_Tutorial]3강-자바 언어 배우기, 객체란? [객체지향 프로그래밍 개념, 자바 프로그래밍 기초 , 자바 튜토리얼]

 

[Java_Tutorial]3강-자바 언어 배우기, 객체란? [객체지향 프로그래밍 개념, 자바 프로그래밍 기초 , 자바 튜토리얼]

[Oracle의 Java Tutorial을 읽고 순서에 의해 정리한 후 본인의 경험과 이해를 바탕으로 작성된 글임을 밝힌다.] [Java Tutorial, 자바 프로그래밍 기초 배우기, Java Programming, 자바 튜토리얼] 1강과 2강을..

tiboy.tistory.com

이제 객체가 무엇인지 이해가 되었을 것이다. 객체는 상태와 행동을 가지고 있다. 데이터 캡슐화로 메서드 내부의 변수와 로직을 외부로부터 숨길 수 있다.

2. 클래스란? (What is a Class?)

클래스(Class)는 블루 프린트(blue print)이다. 그리고 객체를 만드는 틀이다. 우리가 보험사 프로젝트를 시작했다고 하면 먼저 고객을 가입할 수 있는 구조를 만들어야 한다. 모든 고객은 보험사에서 필요한 정보를 가지고 있다.. 이름, 성별, 주민번호, 주소, 나이, 휴대전화 번호 등이 있을 것이다. 고객의 기준이 만들어지고 고객은 최소 1명에서 수십, 수백 그 이상이 존재할 수 있다. 이 고객 객체를 만들기 위해서는 위 속성(이름, 성별 등)을 가지고 있는 기본 틀이 있어야 된다. 그게 바로 클래스(Class). 실제 보험사에 고객이 가입도 하고 보험금을 청구한다고 가정해 본다.

 

 

오프라인에서 H사의 실손보험(실비보험)을 A 씨에게 판매해서 고객을 유치한 B 씨는 회사 전산 시스템을 이용해 A 씨를 고객으로 가입한다. 고객 등록 페이지에서 고객에 대한 정보인 이름, 주민번호, 성별, 주소, 휴대전화번호, 가입일자, 보험상품 등을 화면에 입력한다. 그리고 저장 버튼을 누른다. 해당 정보는 전산 시스템으로 전송되고 고객정보 클래스는 객체를 하나 생성한다. 화면에서 전달된 고객 정보를 객체의 메서드를 통해 필드(변수)에 매칭 된 필드(변수)를 이용해 보험사 전산 시스템의 데이터베이스(DB, DataBase)에 등록하는 기능을 수행한다. 이제 A 씨의 정보는 H사의 데이터베이스에 저장되었다. 이제 언제든 필요시 A 씨의 정보를 확인할 수 있게 되었다. 물론 확인 시에도 해당 객체를 생성하고 정보를 읽어 객체에 매핑 후 화면에 보여주면 된다. 5명의 보험설계사가 동시에 고객을 각각 가입시켜도 해당 고객 클래스의 객체는 5개가 독립적으로 만들어지고 각각 객체에 해당 고객들의 정보가 매핑되고 처리되므로 충돌의 문제는 발생하지 않는데 이것이 객체지향 프로그래밍의 장점 중 하나다.

그럼 보험사 고객 클래스를 예시로 간단하게 만들어 본다.

InsCustomer Class를 보면 main 메서드가 없다. 이유는 해당 클래스는 객체를 생성하기 위한 클래스이기 때문이다. Main 메서드가 있는 클래스는 프로그램의 시작을 담당한다고 했다. main 메서드에서 고객 클래스의 객체를 사용할 수 있는 것이다.

이제 클래스가 무엇인지, 객체가 무엇인지 이해했을 것이다. 우리가 사용한 클래스는 고객 정보를 관리하는 고객 클래스인 메인 메서드가 있는 실행 클래스인 InsSystem 이다.

객체는 InsCustomer에서 만든 customer 가 객체다.

InsCustomer customer = new InsCustomer();

이 구문으로 customer이라는 객체를 인스턴스화 한 것이다.

우리가 기능을 실행하거나 데이터를 처리하기 위해서 각 업무나 기능별로 클래스를 구성하고 관련 객체를 생성해서 시스템을 구성하면 된다. 우리가 자주 사용하는 프로그램은 보통 데이터 처리하는 게 대부분이다. 게임도 데이터 처리로 게임이 진행되는 것이다.

2019/06/09 - [Software/Java] - [Java_Tutorial]5강-자바 언어 배우기, 상속란? [객체지향 프로그래밍 개념, 자바 프로그래밍 기초 , 자바 튜토리얼]

 

[Java_Tutorial]5강-자바 언어 배우기, 상속란? [객체지향 프로그래밍 개념, 자바 프로그래밍 기초 , 자바 튜토리얼]

[Oracle의 Java Tutorial을 읽고 순서에 의해 정리한 후 본인의 경험과 이해를 바탕으로 작성된 글임을 밝힌다.] [Java Tutorial, 자바 프로그래밍 기초 배우기, Java Programming, 자바 튜토리얼] 이제 객체와..

tiboy.tistory.com

 

 

다음은 자바에서 필수로 알아야 할 상속에 대해 알아본다.

반응형