Java언어 스터디 Chapter6-1(객체지향프로그래밍)

최재하·2022년 11월 22일
0

첫 주차 Pre-Onboarding기간때 공부하던 java문법을 따로 스터디를 만들어서 항해 커리큘럼을 진행하면서 따로 java문법도 공부하게 되었습니다

객체란?

객체(Object)란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있으면서 식별 가능한 것을 말한다.
ex)

  • 물리적으로 존재하는 자동차, 자전거, 책
  • 추상적인 학과, 강의, 주문

객체는 속성과 동작으로 구성되어있습니다. 예를들어

  • 사람은 이름, 나이 등의 속성과 웃다, 걷다 등의 동작이있다.
  • 자동차는 색깔, 모델명 등의 속성과 달린다, 멈춘다 등의 동작이있다.

자바에서는 이속성과 동작을 각각 필드메소드라고 부른다.



객체의 상호작용

현실에서 일어나는 상호작용은 객체와 객체 간의 상호작용으로 이루어져있다. 예를 들어 사람은 전자계산기의 기능을 이용하고, 전자계산기는 계산결과를 사람에게 알려주는 상호작용을합니다.

소프트웨어에서도 객체들은 각각 독립적으로 존재하고, 다른 객체와 서로 상호작용을 합니다. 객체들 사이의 상호작용 수단은 메소드입니다 이때 객체가 다른객체의 기능을 이용하는 것을 메소드호출 이라고합니다.



객체 간의 관계

객체는 개별적으로도 사용 가능하지만 대부분 다른 객체와 관계를 맺고 있습니다.
이 관계의 종류에는 집합관계, 사용관계, 상속관계가 있습니다.

  • 집합관계
    집합관계에 있는 객체는 하나의 부품이고 하나는 완성품에 해당된다.

  • 사용관계
    사용관계는 객체간의 상호작용을 말합니다.

  • 상속관계
    상속관계는 상위(부모)객체를 기분으로 하위(자식)객체를 생성하는 관계를 말합니다.


객체와 클래스

자바에서 클래스는 설계도라고 할 수 있습니다. 클래스에는 객체를 생성하기 위한 필드와 메소드가 정의되어 있고 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스라고 합니다.

객체 지향 프로그래밍 개발은 세 가지 단계가 있습니다.
1 . 클래스를 설계
2 . 설계된 클래스를 가지고 사용할 객체를 생성
3 . 생성된 객체를 이용.


클래스 선언


자바 언어는 대소문자를 다른언어로 취급하기 때문에 클래스 이름도 대소문자를 구분해줍니다. 클래스이름이 단일 언어라면 첫 글자만 대문자 서로 다른 단어가 혼합된 이름이라면 각단어의 첫 글자만 대문자로 작성해줍니다.


객체 생성과 클래스 변수

클래스로부터 객체를 생성하려면 new연산자를 사용해준다

new 클래스();

new연산자로 생성된 객체는 메모리 힙영역에 생성됩니다.

클래스 변수;
변수 = new 클래스();

클래스 변수 = new 클래스();//위아래 모두 동일한선언

이렇게 new연산자로 객체를 생성하고 리턴된 객체의 번지를 변수에 저장하면 변수가 객체를 참조하게됩니다.


클래스의 구성멤버

클래스에는 필드, 생성자, 메소드가 있습니다.

  • 필드
    필드는 객체의 고유 데이터, 부품 객체, 상태 정보를 저장하는 곳입니다. 선언 형태는 변수와 비슷하지만, 필드를 변수라고 부르지는 않습니다. 변수는 생성자와 메소드 내에서만 사용되고 생정자와 메소드가 종료되면 소멸되지만 필드는 전체에서 사용되며 객체가 소멸되는게 아니면 객체와 함께 존재합니다.

  • 생성자
    생성자는 new연산자로 호출되는 특별한 중괄호{}블록이다. 생성자의 역할은 객체 생성 시 초기화를 담당합니다 필드를 초기화하거나 메소드를 호출해서 객체를 사용할 준비를 합니다.

  • 메소드
    메소드는 객체의 동작에 해당하는 중괄호{}블록을 말합니다. 메소드를 호출하게되면 중괄호 블록에 있는 모든 코드들이 일괄적으로 실행됩니다. 이때 메소드는 필드를 읽고 수정하는 역할도 하지만, 다른 객체를 생성해서 다양한 기능을 수행하기도 한다, 메소드는 외부로부터 매개값을 받아 실행에 이용하고, 실행 후 결과 값을 외부로 리턴할 수도 있습니다.

0개의 댓글