기록

*11일차(객체) 본문

학원/강의

*11일차(객체)

pringspring 2022. 2. 7. 14:52

@객체지향언어(object,instance)

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

-이 개념을 컴퓨터로 옮겨 만든 것이 객체지향 언어이다.

 

 

*객체

-프로그래밍에서의 객체는 '메모리 조각'

-new 연산자를 통해 클래스의 설계대로 데이터를 메모리에 할당한 결과물(instance)

클래스가 있어야 객체 생성 가능클래스에 작성된 코드대로 할당하기 때문

 

ex)

 

 

*클래스 

 -객체를 정의해 놓은 것

 -사물이나 개념의 공통요소(속성,기능)를 용도에 맞게 추상화 함.

   ex)제품의 설계도

 

*추상화(abstraction)

 -사전적 의미: 구체적 사물들의 공통된 특징

 -프로그램에서 필요한 기능/구체적 사물들의 공통된 특징(속성)을 추출하고 불필요한 것을 제거하는 과정

 

✔속성 : 정적(상태값)

✔기능 : 동적 / 속성활용

✔상태 : 속성→ 필드
✔행동 : 기능→메소드

 


@접근제한자(class level)

  1. public : 접근 제한이 전혀 X
  2. protected : 같은 패키지에서 접근 가능 , 다른 패키지에서 상속관계는 접근 가능 / 다른 패키지에서 접근 불가
  3. default : 같은 패키지 내 /다른 패키지에서 접근 불가
  4. private: 같은 클래스 내 /다른 클래스에서 접근 불가

  -사용이유

  • 외부로부터 데이터를 보호하기 위함
  • 외부에는 불필요한 내부적으로만 사용되는 부분을 감추기 위함

 

default 예시
default class는 다른 패키지에 접근할 수 없음

✔객체지향 프로그래밍에서는 클래스 재사용이 필수적, 타 패키지에 접근할 수 없어 쓸모X

✔field,method를 통칭


@객체지향 3대 원칙

  1. 캡슐화
  2. 상속
  3. 다형성

*캡슐화

-추상화를 통해 정의된 데이터들과 기능을 하나로 묶어 관리하는 기법

-필드의 접근제한자를 private 처리

-필드를 제어하는 메소드 public 지정
-필드+메소드 = 클래스로 관리

 

*상속

-기존의 클래스를 재사용하여 새로운 클래스를 작성

-코드의 추가 및 변경이 용이

-코드의 재사용성 높임

 

*다형성

-여러가지 형태를 가질 수 있는 능력

 

 

@setter/getter/this

*setter

 -값 설정

 -변수명이 같은 경우 가까운 유효범위에 선언

 -필드에 변경할 값을 전달받아 필드값을 변경하는 메소드

 -매개변수가 필드와 동일한 이름일경우 this연산자를 붙여 구분

 

*getter

 -객체 안 해당 field값 가져옴

 

*this

-모든 인스턴스의 메소드에 숨겨진 채 존재하는 지역변수로, 해당 객체의 주소값을 담고있음

 

 


*UML다이어그램

'학원 > 강의' 카테고리의 다른 글

*13일차  (0) 2022.02.09
*12일차 ncs (수강생 평가) -필기  (0) 2022.02.08
*10일차  (0) 2022.02.04
*9일차  (0) 2022.02.03
*8일차  (0) 2022.01.28