8. 자바(java) : 객체(Object), 객체 지향 개념 정리

2024. 4. 1. 15:02·JAVA
목차
  1. 1) 객체 지향 언어
  2. 2) 객체 지향 3대 특징
  3. 3) 추상화(abstraction)
  4. 4) 객체의 생성 = 인스턴스화
  5. 5) 객체의 활용
  6. 객체 배열 형식도 활용이 가능하다

8. 객체(Object)

현실에 존재하는 독립적이면서 하나로 취급되는 사물이나 개념

클래스에 정의된 내용대로 new 연산자를 통해 메모리 영역에 생성된 결과물, 즉 클래스의 인스턴스

1) 객체 지향 언어

현실 세계는 사물이나 개념처럼 독립되고 구분되는 각각의 객체로 이루어져 있으며, 발생하는 모든 사건들은 객체간의 상호작용 으로 발생한다.

이 개념을 컴퓨터로 옮겨놓아 만들어낸 것이 객체지향언어이다.

 

2) 객체 지향 3대 특징

(1) 캡슐화(Encapsulation)

  • 외부에서 함부로 접근할 수 없도록 정보은닉
  • 캡슐화 원칙
    1. 클래스 멤버 변수에 대한 접근 권한은 private가 원칙
    2. 클래스 멤버 변수에 대한 연산처리를 목적으로 하는 함수들을 클래스 내부에 작성한다
    3. 멤버 함수는 클래스 밖엫서 접근할 수 있도록 public으로 설정한다

(2) 상속(Inheritance)

  • 클래스와 클래스가 상속관계에 있을 때, 부모 클래스는 자식 클래스에 객체를 물려주는 것

(3) 다형성(Polymorphism)

  • 상속을 이용해 부모 타입으로부터 파생된 여러 가지 타입의 자식 객체를 부모 클래스 타입 하나로 다룰 수 있는 기술

 

3) 추상화(abstraction)

필요한 객체의 유연성을 확보하기 위해 추상화 진행 후 다양하게 활용 가능

프로그램에서 필요한 요소들이 포함됨

예) 회원관리 프로그램: 이름, 주소, 성별, 주민번호 등의 요소가 필요하다. 이런 요소들을 객체 지향 프로그래밍 언어를 사용해서 변수명과 자료형을 정리한다. 정리된 내용들을 클래스 다이어그램(UML 중 하나)으로 표현하면 다음과 같은 그림을 볼 수 있다
→ 클래스에 해당 내용들을 정의한다

사람의 요소를 구현한 Person클래스 : -는 private 접근제한자를 뜻함

 

4) 객체의 생성 = 인스턴스화

클래스로 객체를 만드는 것

  • 클래스 내부의 멤버를 활용하기 위해서 먼저 객체를 만들어야 한다
    • 클래스 = stack 영역, 객체 = heap 영역
  • 내부엔 멤버가 들어있다 : 필드, 메서드, 이너클래스
  • 하나의 클래스에서 생성된 모든 객체는 동일 메서드(기능)을 가짐 → 구분은 속성 차이로!
  • 객체 생성 코드 [A a = new A();] : A의 객체를 만들어 해당 멤버를 힙 메모리에 저장하고 저장위치에 대한 정보를 a라고 부르자 → a = 참조변수

# 종류

  1. 업캐스팅 : 자식 → 부모
    • 항상 가능, 생략시 컴파일러가 자동진행
  2. 다운캐스팅 : 부모 → 자식
    • 가능한 경우만 수동으로 직접 캐스팅
    • 문법적으로 맞더라도 타입이 같지 않으면 에러가 발생함
    • 변경할 타입의 객체가 생성되어있지 않으면 불가능

 

5) 객체의 활용

  • 외부 호출: 참조변수를 통해서만 호출이 가능 [참조변수.필드명], [참조변수.메서드명]
  • 필드의 활용: 값을 입력하거나 출력
  • 메소드의 활용: 해당 클래스의 메서드를 호출

객체 배열 형식도 활용이 가능하다

객체를 저장하는 배열

배열의 자료형을 클래스명으로 지정하여 활용

 

(1) 선언

  1. 클래스명[] 배열명;
  2. 클래스명 배열명[];

(2) 할당

  1. 배열명 = new 클래스명[i];

(3) 선언과 동시에 할당

클래스명 배열명[] = new 클래스명[i];

(4) 초기화

  1. 인덱스를 이용한 초기화 배열명[] = new 클래스명();
  2. 선언과 동시에 할당 및 초기화 클래스명 배열명[] = {new 클래스명(), new 클래스명(), …};

🚨 객체 배열에 들어갈 객체를 먼저 선언해준 뒤, 객체 내 set과 get이용 가능

 

반응형

'JAVA' 카테고리의 다른 글

10. 자바(java) : 상속(Inherit), super, 오버라이딩(overriding) 간단 정리  (0) 2024.04.01
9. 자바(java) : 제어자 (modifier), 접근제한자, static 개념 간단 정리  (0) 2024.04.01
7. 자바(java) : 배열(Array) [] 간단 정리  (0) 2024.03.28
6. 자바(java) : 제어문(Control Statement) 간단 정리  (0) 2024.03.28
5. 자바(java) : 연산자(Operator) 간단 정리  (2) 2024.03.27
  1. 1) 객체 지향 언어
  2. 2) 객체 지향 3대 특징
  3. 3) 추상화(abstraction)
  4. 4) 객체의 생성 = 인스턴스화
  5. 5) 객체의 활용
  6. 객체 배열 형식도 활용이 가능하다
'JAVA' 카테고리의 다른 글
  • 10. 자바(java) : 상속(Inherit), super, 오버라이딩(overriding) 간단 정리
  • 9. 자바(java) : 제어자 (modifier), 접근제한자, static 개념 간단 정리
  • 7. 자바(java) : 배열(Array) [] 간단 정리
  • 6. 자바(java) : 제어문(Control Statement) 간단 정리
JinHyung-dev
JinHyung-dev
틈틈이 기록하고 있습니다!!
  • JinHyung-dev
    JinHyung's 블로그
    JinHyung-dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (34)
      • JAVA (18)
      • Oracle DataBase (12)
      • 프리코스 (4)
  • 인기 글

  • 반응형
  • 최근 댓글

  • 최근 글

  • 태그

    공부
    요약
    oracle
    SQL
    백엔드
    개발자
    Java
    DB
    정리
    자바
  • hELLO· Designed By정상우.v4.10.0
JinHyung-dev
8. 자바(java) : 객체(Object), 객체 지향 개념 정리

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.