본문 바로가기
Coding/JAVA

[04] 클래스와 객체

by 찡콩찡 2022. 3. 29.

객체 지향 특성 : 캡슐화

  ● 캡슐화 : 객체를 캡슐로 싸서 내부를 볼 수 없게 하는 것

 

객체 지향 특성 : 상속

  ● 상위 개체의 속성이 하위 개체에 물려짐

  ● 하위 객체가 상위 개체의 속성을 모두 가지는 관계

  ● 자식 클래스가 부모 클래스의 속성 물려받고, 기능 확장 

     → 부모 클래스 : 수퍼 클래스

     → 하위 클래스 : 서브 클래스, 수퍼 클래스를 재사용하고 새로운 특성 추가

 

객체 지향 특성 : 다형성 ★

  ● 같은 이름의 메소드가 클래스나 객체에 따라 다르게 동작하도록 구현

     1) 메소드 오버로딩 : 같은 이름이지만 다르게 작동하는 여러 메소드

     2) 메소드 오버라이딩 (상속받은 메소드를 재정의):  슈퍼클래스의 메소드를 서브 클래스마다 다르게 구현

 

 

객체 지향 언어의 목적

소프트웨어의 생산성 향상

 컴퓨터 산업 발전에 따라 소프트웨어의 생명 주기(life cycle) 단축

    소프트웨어를 빠른 속도로 생산할 필요성 증대

 

객체 지향 언어

  상속, 다형성, 객체, 캡슐화 등 소프트웨어 재사용을 위한 여러 장치 내장
  소프트웨어 재사용과 부분 수정 빠름
  소프트웨어를 다시 만드는 부담 대폭 줄임
  소프트웨어 생산성 향상
 
클래스와 객체

 클래스

¤객체를 만들어내기 위한 설계도 혹은 틀
¤객체의 속성(state)행동(behavior) 포함

 객체

¤클래스의 모양 그대로 찍어낸 실체
  n프로그램 실행 중에 생성되는 실체
  n메모리 공간을 갖는 구체적인 실체
  n인스턴스(instance)라고 부름

사례

¤클래스: 소나타자동차,   객체: 출고된 실제 소나타 100
¤클래스: 사람,              객체: , , 윗집사람, 아랫집사람

 

¤클래스: 붕어빵틀,        객체: 구워낸 붕어빵들

 

 
클래스 구성

클래스 선언, class Circle

  class 키워드로 선언
  클래스는 { 로 시작하여 }로 닫으며 이곳에 모든 필드와 메소드 구현
  class CircleCircle 이름의 클래스 선언
  클래스 접근 권한, public
  ->  다른 클래스들에서 Circle 클래스를 사용하거나 접근할 수 있음을 선언

필드와 메소드

  →필드 (field) : 객체 내에 값을 저장하는 멤버 변수

  메소드 (method) : 함수이며 객체의 행동(행위)를 구현

필드의 접근 지정자, public

필드나 메소드 앞에 붙어 다른 클래스의 접근 허용을 표시

public 접근 지정자 : 다른 모든 클래스의 접근 허용

생성자

클래스의 이름과 동일한 특별한 메소드

객체가 생성될 때 자동으로 한 번 호출되는 메소드

개발자는 객체를 초기화하는데 필요한 코드 작성

 

 

객체 생성 및 접근

객체 생성

★반.드.시 new ★키워드를 이용하여 생성
 new는 객체의 생성자 호출

객체 생성 과정

 객체에 대한 레퍼런스 변수 선언
 객체 생성
 →클래스 타입 크기의 메모리 할당 

객체 내 생성자 코드 실행

객체의 멤버 접근

객체 레퍼런스.멤버