05. OOP(Object Oriented Programming) (1)

bbsm·2022년 12월 16일
0

학원 수업 복습

목록 보기
7/36
post-thumbnail

※ 객체지향언어

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

ex) 키보드, 김치, 옆집아저씨, 나, 미세먼지, 모래 한 알, 판소리, 무형문화제

  1. 지향(Oriented) : 어떠한 것을 목표로 함
    객체지향 : 독립적으로 각각 구분해서 인식할 수 있도록 하는 것을 목표로 한다.

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

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

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

(속성 : 나이, 생년월일, 국적, 키, 몸무게, 시력, 주민번호 : 명사 ) - 변수로 나타 낼 수 있음
(기능 : 잠을잔다, 밥을 먹는다, 출근한다 , 퇴근한다, 운전한다 : 동사) - 메소드

객체 지향 언어란?
: 현실세계는 사물이나 개념처럼 독립되고 구분되는 각각의 객체로 이루어져있으며 발생하는 모든 사건들은 객체간의 상호작용이다.
: 이 개념을 컴퓨터로 옮겨 놓아 만들어낸 것이 객체지향 언어이다.
-> 독립적으로 각각 구분해서 인식할 수 있는것을 목표로 하는 코딩 방식

자바에서 객체(Object)란?
: 클래스에 정의 된 내용대로 new 연산자를 통해 메모리 영역에 생성된 것

▶ 추상화

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

ex) 국민 정보관리용 프로그램을 만들려고 할 때, 국민 한 사람의 정보(속성)를 추상화 한다면?

=> 5천만명 데이터를 저장하기 위해서 5천만개의 변수를 저장할 수는 없다
==> 국민이라면 가지고 있는 공통적인 속성을 만들어 놓고 그 곳에 개개인의 정보를 넣어서 사용함

장점 : 유연성 높아짐, 코드중복 감소, 재사용성 높음

▶ 캡슐화

( 추상화를 토해 정리 된 속성과 기능을 하나로 묶고, 속성(데이터)의 직접 접근 방지를 하는 것. 이로 인해 부가적으로 정보 은닉 효과가 발생 함)

캡슐화 원칙
1. 클래스의 멤버변수에 대한 접근 권한은 private을 원칙으로 한다
2. 클래스의 멤버변수에 대한 연산처리를 목적으로 하는 멤버 메소드는 클래스 내부에 작성
3. 멤버 메소드는 클래스 밖에서 접근 할 수 있도록 public으로 설정
.
.
객체(Instance)의 할당
: new 연산자와 생성자를 사용하여 객체 생성 시 Heap 메모리 영역에 서로 다른 자료형의 데이터가 연속으로 나열/할당 된 객체 공간

ex) Student s = new Student();

<객체 지향 언어 - 종합 정리>
현실에 존재하는 독립적이면서 하나로 취급되는 사물이나 개념으로 객체 지향언어에서 객체의 개념은 클래스에 정의된 내용대로 메모리에 할당 된 결과물(Object)

0개의 댓글