객체 지향 언어란?

김덕근·2022년 12월 15일
0

concept

목록 보기
1/21

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

객체 지향 언어 : 독립적으로 각각 구분해서 인식할 수 있는 것을 목표로 하는 코딩 방식
객체들간의 상호작용을 컴퓨터로 옮겨놓은 것

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

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

객체(Instance)

instance : 컴퓨터 안에서 말하는 객체
object : 현실에서 말하는 객체

인스턴스화 = new연산자를 통해 만드는과정
인스턴스 = heap영역에 만들어진 객체

  1. 객체(Object: 객체, 물건) : 독립적으로 각각 구분해서 인식할 수 있는 모든것.
    ex) 키보드, 김치, 옆집아저씨, 나, 미세먼지, 모래한알, 판소리, 무형문화제

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

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


클래스( class ) = 설계도 = 사용자 정의 자료형

객체의 특성(속성, 기능)에 대한 정의를 한 것
ex) 제품의 설계도, 빵 틀

클래스 작성 시 추상화(abstraction), 캡슐화(encapsulation)는 반드시 적용되어야한다

변수 = 속성(값,data)(명사) <- 추상화
나이,생년월일, 국적,키 ,몸무게,시력,

메서드 = 기능(동작,행동)(동사) <- 캡슐화(getter / setter)
잠을잔다,밥을 먹는다,출근한다,운전한다


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


추상화(abstraction)
프로그램에서 필요한 공통점을 추출하고, 불필요한 부분을 제거하는 과정
(피카소-우는여자)
알수있는것(공통적): 사람, 여자, 부티남, 실내, 슬퍼보임
알수없는것(구체적): 나이, 이름 , 사는곳, 키...

==>국민이라면 가지고 있는 공통적인 속성을 만들어 놓고
==>그곳에 개개인의 정보를 넣어서 사용함
이름, 성별, 주민번호, 주소, 전화번호, 나이...

추상화의 장점
코드의 유연성 증가, 코드의 중복 감소, 재사용성 증가(유지보수 용이)


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

getter/setter메서드 사용

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

profile
안녕하세요!

0개의 댓글