티스토리 뷰

클래스(Class) : 객체를 만드는 설계도

클래스로부터 만들어지는 각각의 객체를 특별히 그 클래스의 인스턴스(instance)라고도 한다.

ex 도면 == 클래스, 제품 == 객체

대표적 특징

캡슐화, 상속, 다형성


변수의 종류

  • 필드(field) : 클래스 안에서 선언되는 멤버 변수, 인스턴스 변수라고도 한다.

  • 지역 변수(local variable) : 메소드나 블록 안에서 선언되는 변수

  • 매개 변수(parameter) : 메소드 선언에서의 변수

클래스를 설계할 때 전역변수를 가능한 줄이고 지역변수로 선언해야 안정성이 있다.

변수는 어디든 선언하면 작동한다.
일반적으로
Public == 모든 클래스에서 접근가능 (메소드)
Private == 클래스 내에서만 접근가능 (변수)
사용한다.

접근 제어

같은 패키지 내에서 자유롭게 접근하기. (다른 패키지에서는 접근 할 수 없다.)

Ctrl + Shift + O 를 누르면 자동으로 다른 패키지를 Import 해준다.

클래스 수준에서의 접근 제어

  • Public 다른 모든 클래스가 사용할 수 있는 공용 클래스
  • Package 수식자가 없으면, 같은 패키지 안에 있는 클래스들만이 사용

멤버 수준에서의 접근 제어

연습문제

  1. 사각형을 나타내는 클래스 Rectangle 을 만들어보자.
    사각형은 가로(w)와 세로(h)를 가지며, 사각형의 넓이를 반환하는 perimeter() 등의 메소드를 가진다.

  1. 날짜를 나타내는 클래스 Date 를 만들어보자
    Date 는 년도, 월, 일 등의 속성을 가지며, 날짜를 “20127.12” 와 같이 출력하는 메소드 print1(), 날짜를 “July 12, 2012: 와 같이 출력하는 print2() 등의 메소드를 가진다.

  2. 영화 Movie 클래스를 만들어보자
    Movie 클래스는 영화제목, 평점, 감독, 발표된 연도 등의 필드를 가지고 영화의 모든 정보를 화면에 출력하는 print() 라는 메소드 를 가진다.

  1. 원을 나타내는 Circle 클래스를 만들어보자
    Circle 클래스는 반지름 r과 중심의 좌표 cx,cy 를 필드로 가지고 원의 넓이를 계산하여 반환하는 area() 를 메소드로 가진다. 각 필드에 대한 접근자 메소드와 설정자 메소드도 정의한다.
    1. 책을 나타내는 Book 클래스를 만들어보자
      Book 클래스는 제목(title)과 저자(author)를 나타내는 필드를 가지고 각 필드는 private 로 선언한다. 각 필드에 대해서 접근 자와 설정자 메소드를 정의하고 이것을 통하여 제목과 저자를 설정하여 보자
댓글
최근에 올라온 글
최근에 달린 댓글
250x250