OOP 1

류정훈·2022년 12월 15일
0

학습내용

목록 보기
2/15
post-thumbnail

객체란?

객체 지향 프로그래밍

1.객체(Object : 객체, 물건) : 독립적으로 각각 구분해서 인식할 수있는 모든 것.

ex. 키보드, 김치, 앞집아저씨, 나 등등

2.지향(Oriented) : 어떤한 것을 목표로 함

객체 지향 : 독립적으로 각각 구분해서 인식할 수 있도록하는것을 목표로 한다

3. 언어(컴퓨터에서의 언어 : Language 코드) 코딩 방식

==> 객체 지향 언어 : 독립적으로 각각 구분해서 인식할 수 있는 것을 목표로 하는 코딩 방식


객체 지향 3 + 1대 특징 및 역활

  1. 캡슐화(Encapsulation)
  • 보호역활 : 외부로부터의 접근을 막는다(정보 은닉)
  1. 상속(Inheritance)
  • 부모님이 자식에게 물려줌(속성,기능)+자식이 이미 가지고있는것
  1. 다형성(Polymorphism)
  • 다양한 형태를 지니는 성질
  1. 추상화(Abstraction)
  • 구체적이지 않은 것

객체지향언어

현실에서 객체(Object)란?
자신의 속성(값,data)기능(동작,행동)이 다른것들과 구분되어 식별 가능한 것

  • 속성 : ex.사람의 나이,생년월일,국적....etc
  • 기능 : ex.잠을 잔다, 밥을 먹는다....etc

객체지향언어란?**

독립되고 구분되는 각각의 객체로 이루어져 있으며 발생하는 모든 사건들은 객체간의 상호작용이다. 이 개념을 컴퓨터로 옮겨놓아 만들어낸것이 객체지향 언어이다.


객체지향언어 - 클래스

객체의 특성(속성, 기능)에 대한 정의를 한 것 = 사용자 정의 자료형.

ex.제품의 설계도, 빵 틀

**

클래스 작성시 반드시 필요한 것
객체 지향 언어의 특징 중
추상화,캡슐화**가 적용되어야 함

코딩에서
규약 : 어떻게 하자 안지키는 경우도 있음
규칙 : 안지키면 패널티
원칙 : 위배하는 순간 큰 문제를 야기


객체지향언어 - 추상화

유연성을 확보하기 위해 구체적인 것은 제거한다는 의미
작성하려는 클래스의 속성과 기능 중
프로그램에서 필요한 공통점을 추출하고, 불필요한 부분을 제거하는 과정

  • 알수있는것(공통적) : 사람, 여자, 실내
  • 알수없는것(구체적) : 나이, 주소, 이름

5천만명 데이터를 저장하기 위해서 5천만개의 변수를 저장할 수는 없음.

국민이라면 가지고있는 공통적인 속성을 만들어놓고
그곳에 개개인의 정보를 넣어서 사용함

  • 코드의 유연성

  • 코드의 중복이 낮아짐

  • 재사용성이 높아짐(유지보수에 용이)

* "-" = private
* "+"  = public

객체지향언어 - 캡슐화

추상화를 통해 정리된 데이터들과 기능을 하나로 묶어 관리하는 기법
클래스의 가장 중요한 목적인 데이터의 직접 접근제한을 원칙으로 하여
클래스 외부에서 데이터의 직접적인 접근을 막고,
대신 간접적으로 데이터에 접근할 수 메소드를 클래스 내부에 작성하는 방법

person p1;
p1.name = "홍길동"
public ==> private


캡슐화의 원칙

  1. 클래스의 멤버변수에 대한 접근권한은 private을 원칙으로 한다.
    2.클래스의 멤버 변수에 대한 연산처리를 목적으로 하는 멤버 메소드는 클래스 내부에 작성한다
    3.멤버 메소드는 클래스 밖에서 접근할 수 있도록 public으로 설정한다.

객체(Instance)의 할당

new 연산자와 생성자를 사용하여 객체 생성 시 Heap 메모리 영역에 서로 다른 자료형의
데이터가 연속으로 나열/할당된 객체 공간


종합하면..

업로드중..

profile
It works...why?

0개의 댓글