Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

forest_moon

[Java] 자바, 객체지향 프로그래밍.클래스와 객체 본문

JAVA/inflearn정리

[Java] 자바, 객체지향 프로그래밍.클래스와 객체

rokga 2023. 4. 5. 23:06

1. 객체 지향 프로그래밍

무엇?

객체지향 프로그래밍(Object-Oriented Programming)이란, 조립식 프로그래밍이다. 객체를 조립하여 전체 프로그램을 만드는 것이다.

장점?

조립식으로 프로그램을 만들면 좋다. 고장이 나도 해당 부분만 수리하면 된다. 또 기능을 추가할 때, 만들어서 끼워 넣으면 된다.

안 쓸 이유가 없다. 무조건 OOP로 프로그램을 만드는 게 답이다.

 

2. 클래스와 객체


객체는 어떻게 만드나?

프로그램이 객체들의 조합으로 만들어짐을 배웠다. 그럼 객체는 뭘로 만들까? 정답은 클래스이다.

클래스와 객체의 구분(차이)

클래스란, 객체를 만들기 위한 설계도이다. 해당 설계도를 통해 만들어진 무언가! 이를 객체 또 다른 표현으로 인스턴스(instance)라 한다.

프로그램을 만들려면 여러 객체가 필요하다. 여러 객체를 만들려면, 객체별 클래스가 필요하다. 결과적으로, 프로그램을 만들기 위해서는 클래스를 잘 만들어야 한다.

3. 클래스 설계 및 구현


구조?

클래스를 잘 만들려면 그 구조를 알아야 한다. 클래스는 두 영역으로 나뉜다. 상태를 정의하는 필드(fields)와 동작을 정의하는 메소드(methods)이다.

설계 예

고양이를 클래스로 설계해보자. 아래와 같이 클래스를 도식화 한것을 클래스 다이어그램(class diagram)이라 한다.

구현 예

이제 이를 코드로 구현해야 한다. 왜? 그래야 객체를 만들 수 있다.

요약


객체 지향 프로그래밍

  • OOP라고 한다. 프로그램을 객체의 조립으로 만드는 방식이다.
  • OOP는 프로그램의 관리/재사용/확장에 좋다.

클래스 vs 객체

  • 클래스는 객체를 만들기 위한 설계도이다.
  • 객체의 또 다른 표현으로는 인스턴스(instance)가 있다.
  • 때문에 클래스로 객체를 만드는 것을 “인스턴스화”라고 한다.

클래스 설계 및 구현

  • 클래스는 필드(상태)와 메소드(동작)로 구성된다.
  • 클래스를 도식화한 것을 “클래스 다이어그램”이라 한다.
  • 클래스 다이어그램 보고 코드를 작성할 줄 알아야 한다.

예제)

문제

정사각형 클래스를 구현하려 한다. 이는 한 변의 길이를 가지며, 그 넓이를 반환할 수 있다.

위 클래스다이어그램을 참고하여 이를 만들고, 해당 객체를 활용하여 출력 예와 같은 결과를 얻으시오.

출력 예

변의 길이가 4 정사각형의 넓이: 16한 변의 길이가 4인 정사각형의 넓이: 16

 

public class SquareTest {
  public static void main(String[] args) {
    /* 객체 생성 */
    Square sqe = new Square();
    /* 필드 초기화(값 변경) */
    sqe.length = 4;
    /* 결과 출력 */
    System.out.printf("한 변의 길이가 %d인 정사각형의 넓이: %d",sqe.length,sqe.area());
  }
}

/* 정사각형 클래스 구현 */
class Square {
  int length;
  
  public  int area(){
   return  length * length;
  }
}