Chapter6. 클래스_1

박경희·2023년 5월 28일
0

공부를 해보자

목록 보기
7/38
post-thumbnail

6-1객체지향 프로그래밍

객체

  • 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있으면서 식별 가능한 것.
  • 객체는 속성과 동작으로 구성되어 있다.
  • 속성(필드), 동작(메소드)

객체 지향 프로그래밍

  • 객체를 만들고 이를 조립해 완성된 프로그램을 만드는 기법.

객체 모델링

  • 현실 세계의 객체를 소프트웨어 객체로 설계하는 것.
  • 현실 세계 객체의 속성과 동작을 추려내어 소프트웨어 객체의 필드와 메소드로 정의하는 과정.

메소드호출

  • 객체들 사이의 상호작용 수단이 메소드이다. 이때 객체가 다른 객체의 기능을 이용하는 것이 메소드 호출이다.

  • 도트(.) 연산자는 객체의 필드와 메소드에 접근할때 사용.
  • 매개값은 메소드를 실행하기 위해 필요한 데이터.

객체와 클래스

자바에서는 설계도가 클래스이다.
클래스에는 객체를 생성하기 위한 필드와 메소드가 정의되어 있다.
클래스로부터 만들어진 객체를 해당 클래스의 인스턴스(instance)라고 한다.
ex - 자동차 객체는 자동차 클래스의 인스턴스이다.
클래스로부터 객체를 만드는 과정을 인스턴스화라고 한다.

객체 지향 프로그래밍 개발의 3가지 단계

  • 1.클래스를 설계한다.
  • 2.설계된 클래스를 가지고 사용할 객체를 생성한다.
  • 3.생성된 객체를 이용.

*main() 메소드가 없는 클래스는 객체 생성 과정을 거쳐 사용해야 한다.

객체 생성과 클래스 변수

  • new는 클래스로부터 객체를 생성시키는 연산자이다.
  • 생성자는 클래스() 형태를 가지고 있다.
  • new 연산자로 생성된 객체는 메모리 힙 영역에서 생성된다.

클래스의 용도

  • 클래스는 두가지 용도가 있다. 하나는 라이브러리(API: Application Program Interface)용이고 다른 하나는 실행용이다.
  • 라이브러리와 실행 클래스가 분리되는 것이 좋다. 단 하나의 클래스로 구성되면 하나로 작성하는게 좋을 수 있다.

클래스의 구성 멤버

  • 필드:객체의 데이터가 저장되는 곳
    -변수는 생성자와 메소드 내에서만 사용되고 생성자와 메소드가 실행 종료되면 자동 소멸된다. 하지만 필드는 생성자와 메소드 전체에서 사용되며 객체가 소멸되지 않는 한 객체와 함께 존재한다.

  • 생성자:객체 생성 시 초기화 역할 담당 
생성자는 new 연산자로 호출되는 특별한 중괄호{}블록이다.
    -생성자의 역할은 객체 생성 시 초기화를 담당한다.
    -필드를 초기화하거나 메소드를 호출해서 객체를 사용할 준비를 한다.
    -생성자는 메소드와 비슷하게 생겼지만, 클래스 이름으로 되어있고 리턴 타입이 없다.


  • 메소드:객체의 동작에 해당하는 실행 블록
메소드는 객체의 동작에 해당하는 중활호 {}블록을 말한다.
    -중괄호블록은 이름을 가지고 있는데 이것이 메소드의 이름이다.
    -메소드를 호출하게 되면 중괄호 블록에 있는 모든 코드들이 일괄적으로 실행된다. 이때 메소드는 필드를 읽고 수정하는 역할도 하지만, 다른 객체를 생성해서 다양한 기능을 수행하기도 한다.
    -메소드는 객체 간의 데이터를 전달하는 수단이다.
    -외부(호출한 곳)로부터 매개값을 받아 실행에 용이하고, 실행 후 결과 값을 외부(호출한 곳)로 리턴할 수도 있다.


마무리 정리

클래스 - 객체를 만들기 위한 설계도
객체 - 클래스로부터 생성되며 ’new 클래스()’로 생성한다.
new 연산자 - 객체 생성 연산자이며, 생성자를 호출하고 객체 생성 번지를 리턴한다.
클래스 변수 - 클래스로 선언한 변수를 말하며 해당 클래스의 객체 번지가 저장된다.
인스턴스 - 객체는 클래스의 인스턴스이다.
클래스 멤버 - 클래스에 선언되는 멤버는 필드, 생성자, 메소드이다.

순서대로 필드, 생성자, 메소드

*참고 혼자공부하는자바 신용권 지음 한빛미디어.

1개의 댓글

comment-user-thumbnail
2023년 9월 19일

깔끔한정리 너무 잘보고 갑니다

답글 달기