# opp
[ CS ] OOP ( Object-Oriented Programming )
[1] 객체 지향 프로그래밍 > 프로그램을 여러개의 독립된 객체의 모임으로 보고 각 객체를 유기적으로 연결하여 프로그래밍 [2] OOP 구성 CLASS ( 클래스 ) > 속성과 행위로 구성되어 외부와 독립적으로 디자인된 사용자 정의 데이터형 OBJECT ( 객체 ) > 클래스의 인스턴스 > 실제 메모리에 할당되어 고유의 속성을 가지고 클래스에 정의된 행위 ( 메소드 ) 를 수행 METHOD ( 메소드 ) > 클래스로부터 생성된 객체를 서브루틴 형태로 조작할 수 있도록 하는 클래스에 정의된 함수 [3] OOP 특징 자료 추상화 > 어떻게 구현되는지는 숨기고 무엇인지만 정의하여 표현함으로 프로그램을 간단하게 한다. > 자료 추상화를 통해 정의된 자료형을 추상자료형이라고 한다. > OOP에서의 클래스는 자료 추상화를 통해 정의 된다. 상속 > 상속한 클래스 = 부모 클래스, 상위 클래스 > `
[JAVA] e_opp 객체
대문자로 시작하는 단어에 괄호()있으면 생성자 기본 생성자 앞에 우선은 public을 넣어주세요(나중은 나중에 생각해) 기본생성자를 선언하지 않는다고 해서 받는 패널티는 없으나 쓰세요!(습관) 보통은 재정의가 필요할 때 쓰는 편! get메소드는 파라미터가 없고, 반환값은 있다 alt + shift + s -> generate getters and setters 이걸 만드는 이유는 필드에 직접 접근하는 것을 막기 위해서 사용 보안상의 이유로 접근을 막음 모르는건 계속 추가업로드중.. 업로드중..

객체 지향 프로그래밍(OPP)
✔️ 객체 지향 프로그래밍 ✔️ 캡슐화 ✔️ 추상화 ✔️ 상속 ✔️ 다형성 🔎 OPP : 모든 것을 객체로 그룹화, 4가지 주요 개념을 통해 재사용성을 얻을 수 있다. 🔎 객체 지향 프로그래밍(OPP)의 주요 개념 : 캡슐화, 상속, 추상화,다형성 🔎 캡슐화 : 데이터와 기능을 하나의 단위로 묶는 것 은닉화(내부 데이터나 구현은 외부 노출되지 않도록 하고 동작은 노출키신다), 느슨한 결합에 유리하여 구현을 자유롭게 수정 가능하다. 🔎 추상화 : 인터페이스 단순화 (실제로 노출되는 부분을 단순하게 만든다), 인터페이스란 클래스 정의 시 메

[OPP] SOLID 원칙
객체지향 설계 원칙 객체지향적으로 장점을 최대한 활용할 수 있도록 설계하기 위해서는 SOLID라는 설계원칙을 준수하여 설계하여야 한다. SOLID 윈칙은 5가지 설계원칙의 앞글자만 따왔다. SRP (Single Responsibility) 단일 책임의 원칙 하나의 클래스는 하나의 책임(기능)을 가져야한다 클래스를 변경하는 이유는 단 하나여야 한다 이 원칙을 지키지 앟는 경우 한 책임의 변경에 의해 다른 책임과 관련된 코드에 영향을 미칠 수도 있다. 유지보수가 매우 비효율적 자동차를 객체지향적으로 만든다면 자동차라는 하나의 큰 클래스로 만들면 안된다. 핸들 클래스, 바퀴 클래스, 엔진 클래스 세부적인 기능을 하는 클래스로 쪼개어 설계해야 된다. OCP (Open-

[OPP] 객체지향프로그래밍
객체지향 프로그래밍이란? 프로그래밍 개발방법론 사람이 현실을 인식하는 방법을 개발에 접목 직관적으로 이해하기 쉽다 유지 보수를 용이하게 만든다 추상화, 캡슐화, 상속, 다형성을 골고루 사용해 프로그래밍하는 방법 장점 코드의 재활용성이 높음 코딩이 절차지향보다 간편함 디버깅이 쉬움 단점 처리속도가 절차지향보다 느림 설계에 많은 시간소요가 들어감 객체란? 실제로 존재하는 것(건물, 사람, 자동차), 추상적인 것(날짜) 중에서 자신의 속성과 동작을 가지는 모든 것을 말한다. 객체는 속성(필드)과 메소드(동작)로 구성된 자바 객체로 모델링할 수 있다. 객체간의 관계 객체 지향 프로그램에서는 객체는 다른 객체와 다른 객체와 관계를 맺고 있다. 
OPP 객체지향 프로그래밍 2
캡슐화 캡슐화란? 데이터를 외부로 부터 보호 하기 위해 특정 객체 안에 관련된 속성과 기능을 하나의 캡슐로 만드는 것이다. 캡슐화의 필요성 원치 않는 외부로 부터의 데이터 개입을 막을 수 있고, 데이터가 변경 되더라도 다른 객체에 영향을 주지않게 끔 독립성을 확보 할 수 있다. > ### 패키지(Package) 패키지란? 특정한 목적을 공유하는 클래스 의 묶음을 의미하며, 컴퓨터에서 폴더와 비슷한 개념을 가지고 있습니다. 클래스의 실질적인 이름에는 패키지를 포함 하고있다. (ex String 클래스의 이름은 = java.lang.String) 패키지의 구분으로 인해 같은 클래스명을 사용하더라도, 충돌을 막을 수있으며 접근 제어범위 설정에 용이하다. 패키지는 소스 파일 첫 문장에 아래와 같이 선언되며 같은 소스파일의 클래스들은 같은 패키지에 속하게 된다. Import 문 Import 문은 원래 클래스를 사용할 때, 매번

[PYTHON]OPP & Class
OPP(객체 지향 프로그래밍)   Class에 대해 알아보기 전에 Object Oriented Programming(객체 지향 프로그래밍)이 뭔지 간단히 알아보자. 객체 지향 프로그래밍 : 문제를 객체로 표현하고, 그 객체들간 통신하여 문제를 해결하는 프로그래밍 기법 객체(object) : 속성값(attribute)을 갖고 행동(method)이 정의된 데이터   코드를 클래스 위주로 작성하는 것을 Object Oriented Programming(객체 지향 프로그래밍) 이라고한다. 클래스(class)   Class의 수많은 사전적 의미 중에서 코딩에 사용되는 class 라는 단어가 가지는 의미는 "부류"에 가장 가깝다. 비슷한 사람들을 가리켜 "저들은 같은 부류의 사람들이다" 라고 한다. 즉 공통점이 많은 사람들을 가리켜 "같은 부류" 라고 한다.   자동차를 예로 들어 보자면, Lexus, BMW,
OPP 객체지향 프로그래밍
객체지향 언어(OOP) 과거 언어는 절차 지향적으로 설계 되어있었으나, 시대의 흐름에 따라 절차 지향적 언어의 낮은 효율로 인해 객체 지향적 언어를 사용하게 되었다. 객체 지향 언어란 다음과 같이 표현 할 수있는데, 객체 지향언어 = 프로그래밍 + 객체지향개념(규칙) 기존의 언어에서 추가적인 개념이나 규칙이 추가 된 것이라 볼 수있다. 이러한 객체 지향언어의 핵심적 특징은 다음과 같다. 1.캡슐화 1.상속 1.추상화 1.다형성 > 객체(Object) & 클래스(Class) 객체는 만들려고자 하는 하나의 사물과도 같고 클래스는 이 제품의 설계도와도 흡사하다. 객체 = 기능 + 속성 // 의 형태를 가지고 있고 여기서 기능은 다양한 변수를 기능은 메서드라고 볼 수있다. 예를 들어 TV라는 객체가 있을 때, 이 TV의 설계도를 클래스 라고 하고 속성(변수)에는 TV의 크기, 길이, 색상 등등 기능(메서드)에는

객체지향 설계 5원칙
한 4개월 전이었나.. 그 쯤 수호(가명)께 이런 질문을 한 적이 있다. > "어떻게 해야 MSA 아키텍처를 잘 지키고 있는지 모르겠어요. 기사 관련 api는 다 Rider Controller에 넣어야할까요??" > 한 분이 답변을 주셨다. > 한 클래스에서 하는 일은 하나만 있는 것이 좋아요.SPR 아세요? 단일 책임 원칙 > 분명 아는 건데 도저히 기억이 나지를 않는거다.. ''공부에 너무 소홀했다..'' 라는 생각이 스쳐가고 책을 펼쳤다... https://images.velog.io/images/south_daria/post/fdbcad8f-421b-43db-a22b-4a8673970e50/image.png 객체지향이란? >객체지향이란 컴퓨터 프로그래밍의 패러다임이며
.png)
TIL 50-1 | 객체지향(OPP) 간단정리
객체 지향(Object Oriented Programming) 객체지향 프로그래밍이란, 프로그램을 객체로 정의해서 객체들끼리 의사소통할 수 있는 형태로 작업해 나가는 방법을 뜻한다. (절차 지향 반대되는 프로그래밍 방법론이다.) 관련된 오브젝트를 재사용하거나, 특정 오브젝트에서 문제가 생겼을 시 관련 있는 오브젝트만 수정하면 가능하기에 버그픽스와 재사용성에서 이점을 갖 있다. 새로운 기능이 필요하다면 새로운 오브젝트를 생성하면 되므로 확장성 또한 좋다. 객체 지향의 특징 생산성 높으며 신속한 기능 구현 및 추가, 효율적인 유지 보수를 가능케 한다. Object 내 data, function들이 포함된다. 객체 내 데이터들을 fields 혹은 일반적으로 우리가 부르는 property라고 부른다. 클래스를 통해 인스턴스(객체)를 만들어 낼 수 있다. 객체 지향의 원칙 Encapsulat

[Java] 추상 클래스와 인터페이스의 차이
추상 클래스 간단히 말하면... 클래스를 설계도라 하면, 추상 클래스는 미완성 설계도에 비유할 수 있다. (여기서 클래스가 미완성이라는 것은 추상 메서드를 포함하고 있다는 의미이다.) 예를 들면, 같은 크기의TV라도 기능의 차이에 따라 여러 종류의 모델이 있지만 설계도 90은 동일할테니, 어느정도 틀을 갖춘 상태에서 진행하는 것이 좋다. 이때 사용할 수 있는 것이 추상 클래스이다. 추상 메서드 ? 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨 둔 것이 추상메서드이다. 추상 메서드는 상속받는 클래스에 따라 달라질 수 있다. 추상 클래스 규칙 추상 클래스는 키워드 abstract를 붙여 표현한다. 추상 메서드를 포함하지 않은 클래스에서도 abstract를 붙여서 추상 클래스로 지정할 수도 있다. 클래스를 abstract로 지정하면 new를 통해 객체를 직접 생성할 수 없다. 메소드에 abstract를 사용할 경우
OPP(Object Oriented Programming)
OOP란? Object Oriented Programming의 줄임말로 '객체 지향 프로그래밍'을 뜻한다. 컴퓨터 프로그램 설계 철학으로 프로그램을 명령어들의 모임으로 보는 시각에서 벗어나 여러개의 독립 단위, 즉 '객체'의 모임으로 파악하려고 하는 것이다. 이는 프로그래밍을 사람이 현실 세계를 보고 이해하는 방법을 흉내 낸 방법론이다. (때문에 사람이 이해하기 쉬울 수 있음.) OOP의 특징 OOP는 4가지의 중요한 특징이 있다. 캡슐화, 추상화, 상속성, 다형성 이렇게 4가지의 특성이다. 1. 캡슐화 (Encapsulation) 캡슐화는 데이터와 기능을 하나의 단위로 묶는 것을 말한다. (속성과 기능을 하나의 객체 안에 만드는 것) 캡슐화의 특징은 다음과 같다. 은닉화(hiding) : 구현을 숨기고, 동작만을 노출. 느슨한 결합(Loose Coupling) : 언제든 구현을 수정 할 수 있다. 2. 추상화 (Abstraction

TIL 106 | 객체지향 프로그래밍과 함수형 프로그래밍
코어 자바스크립트를 공부하면서 객체지향형 프로그래밍, 함수형 프로그래밍 이라는 말이 자주 등장하는데, 설명에 사용되는 개념도 어렵고 모호해서 항상 찝찝한 기분이 들었다. 제대로 개념을 이해하고 넘어가야 하는 CS 기초 중의 기초.. 확실하게 짚고 넘어가보자. > #### 텍스트로 공부하기 전에 반드시 아래 유튜브를 시청할 것을 강력히 권고합니다...! [얄팍한 코딩사전] 객체지향 프로그래밍이 뭔가요? [얄팍한 코딩사전] 함수형 프로그래밍이 뭔가요? 객체지향 프로그래밍(OOP) > ### 주요 키워드 # 상속 # 추상화 # 캡슐화 # 다형성 > ### 컴공과 교수님들의 비유 상태나 메소드를 의미하는 밀가루 반죽과 팥이 클래스라는 붕어빵 틀에 찍혀서 객체라는 *