OOP [Java] 객체지향 프로그래밍 - 상속 상속을 통해 클래스를 구현하다 보면 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있어서 코드 추가나 변경이 편해요. 여기서 ParentApp 그리고 ChildApp은 상속 관계에 있다고 하고, 상속을 해주는 ParentApp을 부모 클래스, 상속을 받는 ChildApp을 자식 클래스라고 해요. 부모 클래스 자식 클래스 상속 관계를 그림으로 표시하면 아래와 같... Javasuperhas aOverridingOOPinheritanceObject classis-aObject Oriented ProgrammingJava [Java] 객체지향 프로그래밍 - 역사와 클래스 실제 사물의 속성과 기능을 분석한 다음, 데이터(변수)와 함수로 정희하여 실제 세계를 컴퓨터 속에 옮겨 놓은 것과 같은 가상 세계를 구현하고 이 가상세계에서 모의실험을 함으로써 많은 시간과 비용을 절약할 수 있게 되요. 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있어요. 그리고 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있어요. 객체는 TV, 에어컨 ... JavainstancevariablesOOPobjectObject Oriented ProgrammingmethodclassJava Java 프로그래밍 : 객체지향 (1) 자바의 특징 Windows, Android, MacOS, UNIX 등 다양한 환경에서 동작한다. Object-Oriented Programming, 조립식 프로그래밍. 자바의 장점 객체를 재사용할 수 있다. 프로그램 확장이 편리하다. 클래스와 객체 클래스(Class)는 자바 프로그래밍의 최소 단위이며, 객체(Object)를 만들기 위한 설계도라고 할 수 있다. 또한 오브젝트를 인스턴스라고 부... static자바클래스객체생성자메소드OOPJavaJava [Java] 객체지향 프로그래밍 - 오버로딩 메서드도 변수와 마찬가지로 같은 클래스 내에서 서로 구별될 수 있어야 하기 때문에 각기 다른 이름을 가져야 해요. 하지만 한 '클래스' 내에서 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있어도 매개변수 개수 또는 타입이 다르면 같은 이름을 사용해서 정의가 가능해요. 이처럼 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 메서드 오버로딩Overloading, 또는 오버로딩O... Object Oriented ProgrammingVarargsOOPJavaoverloadingJava [Java] 객체지향 프로그래밍 - 생성자 App 클래스를 예로 들어 인스턴스 생성하는 과정은 아래와 같아요. 컴파일을 할 때 소스 파일*.java의 클래스가 생성자가 하나도 없다면 컴파일러는 자동적으로 아래와 같은 생성자를 추가해서 컴파일해요. 아무 기능도 수행하지 않기 때문에 생성과 동시에 초기화가 필요한 인스턴스는 반드시 생성자를 선언해줘야 해요. 근데 만약에 매개변수가 있는, 기본 생성자가 아닌 생성자가 선언되어 있고, 기본 ... Object Oriented ProgrammingConstructordeep copyshallow copyOOPJavaConstructor Spring 객체지향 원칙 Open-Closed Principle 소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다. 구현 객체를 변경 할 때 클라이언트 코드(interface부)를 변경해야하면 안된다. Dependency Inversion Principle 추상화에 의존해야지, 구체화에 의존하면 안된다. 클라이언트가 구현 클래스에 의존하지 말고, 인터페이... 객체지향SpringOOPOOP [Java] 객체지향 프로그래밍 - 클래스 내 변수 초기화 변수를 선언하고 처음으로 값을 저장하는 것을 변수의 초기화라고 해요. 변수의 초기화는 경우에 따라 필수 또는 선택적이기도 하지만, 가능하면 선언과 동시에 적절한 값으로 초기화하는 것이 좋아요. 클래스에선 인스턴스 변수는 따로 초기화하지 않고 사용해도 되요. 자료형에 따라 적절한 값으로 초기화를 해주기 때문이에요. 하지만 지역 변수는 반드시 사용하기 전에 초기화해야 해요. 참고로 각 타입의 기... Constructor InitializationObject Oriented ProgrammingExplicit initializationinitialization blockinstance variableOOPJavaConstructor Initialization Java 프로그래밍 : 객체지향 (3) 상속 (extends) 상속을 사용하면 코드 중복을 제거하고, 기존 클래스를 확장하기 쉬워 프로그램 확장성을 증가시킬 수 있다. class A extends B {} 와 같은 형식으로 사용한다. B 클래스를 A가 상속받는 것이다. 이 경우 B가 부모 클래스, A가 자식 클래스가 된다. 해당 클래스의 필드는 물론이고 메소드를 그대로 사용할 수 있다. 업캐스팅이란, 자식 객체를 부모의 타입으로 ... 자바객체지향protected상속그룹화super인터페이스접근제어자업캐스팅오버라이딩다형성OOPJavaJava [Java] 객체지향 프로그래밍 - 제어자 제어자Modifier는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여할 수 있어요. 제어자의 종류는 크게 접근 제어자와 그 외의 제어자로 나눌 수 있어요. 접근 제어자 : public, protected, default, private 단, 접근 제어자의 경우 한번에 네 가지 중 하나만 사용할 수 있어요(public, private을 동시에 적용할 수 없다는 의미에... abstractstaticObject Oriented ProgrammingencapsulationfinalAccess ModifierOOPJavaAccess Modifier [Java] 객체지향 프로그래밍 - 다형성 객체지향 개념에서 다형성이란 여러가지 형태를 가질 수 있는 능력을 의미하며, 자바에서는 한 타입의 참조 변수로 여러 타입의 객체를 참조할 수 있도록 하여 다형성을 프로그래밍적으로 구현했어요. 위 예제처럼 Person과 NoobNoob이 상속 관계에 있으면 부모 클래스 타입의 변수에 자식 클래스 인스턴스를 참조할 수 있게 해요. 그래서 자식 타입의 참조 변수로 부모 타입의 인스턴스를 참조하는 ... Up castingDown CastingObject Oriented ProgrammingPolymorphisminstanceofOOPJavaDown Casting [Java] 객체지향 프로그래밍 - 추상 클래스 클래스를 설계도에 비유하면, 추상 클래스Abstract Class는 미완성 설계도에 비유할 수 있어요. 미완성 설계도로 제품을 완성할 수 없듯이, 추상 클래스를 통해 인스턴스를 생성할 수 없어요. 추상 클래스는 상속을 통해 자식 클래스에 의해서만 완성될 수 있어요. 제품에 공통으로 사용하는 기능들을 naive하게 구현을 하고 작업하게 된다면 추후 다른 파생 제품을 만들 때도 이런 기반을 숙지... Object Oriented ProgrammingOOPJavaabstract classJava [Java] 객체지향 프로그래밍 - 인터페이스 인터페이스Interface는 추상 메서드를 가지지만 추상화 정도가 높아서 추상 클래스와 달리 구체화된 일반 메서드 또는 멤버 변수를 구성원으로 가질 수 없어요. 오직 추상 메서드와 상수만을 멤버로 가질 수 있고 그 외에 다른 어떤 요소도 허용하지 않아요. 그리고 접근 제어자로 public 또는 default만 사용할 수 있어요. (클래스 메서드와 디폴트 메서드 제외) 원래 인터페이스의 모든 ... Object Oriented ProgramminginterfaceOOPJavaJava [Java] 객체지향 프로그래밍 - 내부 클래스 내부 클래스Inner Class는 클래스 내에 선언된 클래스에요. 한 클래스를 다른 클래스의 내부 클래스로 선언하면 두 클래스의 멤버들 간에 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 클래스를 감추면서 코드의 복잡성을 줄일 수 있어요(캡슐화). 내부 클래스 선언 위치에 따라 구분을 지을 수 있어요. 1. 인스턴스 클래스 외부 클래스의 멤버 변수 선언 위치에 선언해요. 외부 클래스의... Static classObject Oriented Programminganonymous classlocal classinner classInstance ClassOOPJavaInstance Class 16) React의 전적들... 실무가고싶으면 class형태의 component도 알아야 해 ! useEffect와 axios까지! 실무중심주의 코드캠프의 커리큘럼 체고야!!!! (Code Camp FE 6기) 스프레드 연산자를 잘 활용하면 코드를 간략하고 한 눈에 보기쉽게 리팩토링 할 수 있으니 포트폴리오에도 적용해보시길 바랍니다! state, props, refs, 컴포넌트 메서드와 생명주기 메서드를 this로 참조할 수 있었습니다. 이렇게 컴포넌트 생명주기를 함수형 컴포넌트에서 그려주기 위해서 저희는 useEffect를 사용해서 그려주었습니다. 오늘 새로 배운 react-Hook 두 가지 us... 컴포넌트생명주기updateboardidclassuseEffect내장객체OOP의존성배열렉시컬디스inputcomponentdidupdate스프레드연산자componentWillUnmount()extends componentClass ComponentcomponentDidMountcomponent-lifecycleState객체지향프로그래밍dependency arraythisClass Component 클래스, 객체, 인스턴스, 객체지향 객체지향언어를 공부하면 중요하게 다루는 것 중 하나가 클래스(class)입니다. 📚 클래스(class) ✍ 클래스 안에 정의한 속성들을 데이터 멤버(data member)라고 부르고, IT관련 객체 지향 프로그래밍에서 사용하는 언어로서, 객체를 만들고 조작하며 객체끼리 관계를 맺음으로써 다수의 객체가 함께 수행될 수 있게 한다. ▶ 객체(object) 객체 지향 프로그래밍(OOP)이나 설계에... 클래스인스턴스객체객체지향언어OOPOOP 더 객체지향적인 Rails 다음과 같은 코드를 본 적이 있나? 아마 모든 코드가 그렇지는 않겠지만, 저런 코드를 본 적이 있을 것이다. 위 코드는 장황하고 읽기 어렵다. 또한 새로 기능추가를 하는 경우, 수많은 if~else 사이를 왔다갔다해야한다. 어떻게 고칠 수 있을까? 메소드의 이름인 role_name과 role_description에 힌트가 있다. 바로 Role이라는 PORO(Plain Old Ruby Obje... 객체지향Ruby on RailsOOPPOROOOP 오브젝트-코드로 이해하는 객체지향 설계 : Part 1 티켓을 구매할 수 있는 매표소: TicketOffice 어떤 객체(Audience)가 변경될 때 그 객체에 의존하는 다른 객체(Theater)도 함께 변경될 수 있다는 것이다. 즉, 우리의 최종 목표는 의존성을 낮춰 객체의 변경이 다른 객체에 많은 영향을 끼치지 않는 변경이 용이한 설계를 만드는 것이다. 설계를 변경하기 어려웠던 이유는 Theater 가 Audience, TicketSelle... OOPOOP 오브젝트-코드로 이해하는 객체지향 설계 : Part 4 이번 장에서는 우리가 지금까지 해왔던 책임 중심의 설계가 아닌 상태 중심의 설계를 살펴보며 훌륭한 객체지향 설계는 어떤 특징이 있는지, 그리고 설계의 품질을 향상시키는 것에는 어떤 것들이 필요하며 동시에 어떤 것을 포기해야하는지를 알아보겠습니다. 데이터 중심의 관점에서 객체는 자신이 포함하고 있는 데이터를 조작하는데 필요한 오퍼레이션을 정의하지만, 책임 중심의 관점에서 객체는 다른 객체가 요... OOPOOP 2022년 03월 22일 TIL 1. 객체지향 프로그래밍 객체 개념적인 용어 : 객체 type은 class로 만들 수 있다. implements Runnable 객체는 스스로 동작할 수 있어야 한다. 밖에서 객체 내의 저옵를 접근하지 못하도록 한다. 객체 소유 상속된 객체에서도 접근 가능 같은 패키지 내에서 접근 가능(패키지 가능성, 패키지 내에서만 특정 객체의 접근을 허용하는 경우) 누구든지 접근 가능 추상화된 객체 추상... SOLIDOOP데브코스TILClass DiagramClass Diagram (ch3) - Loops, random numbers 그냥 프로그램 종료 ex. 에러만남 pseudorandom numbers: 진짜 랜덤은 아님, by a seed value same seed -> same sequence of random numbers math 는 import 없이 사용할수있음... JavaOOPJava 오브젝트-코드로 이해하는 객체지향 설계 : Part 5 따라서 첫번째 원칙은 우린 책임을 수행할 정보를 알고 있는 객체에게 책임을 할당하는 것이다. 따라서 Screening 객체는 '예매하라' 라는 메시지를 수신할 수 있다. 하지만 우리는 할인 정책이 있다. 따라서 우리는 할인 여부를 판단하라 메시지를 전송해 외부의 도움을 요청해야한다. 이처럼 메시지(책임)를 처리하기 위해 정보 전문가 객체들을 선택하며, 처리 불가능한 부분은 다른 정보 전문가에... OOPOOP (ch3) - Branching Mechanism, Boolean expression 아래와 동일!! 사전식 뒤에있으면 양수... JavaOOPJava C++_OOP4 const 사용 목적은 객체의 멤버변수를 변경시킬 수 없도록 하기 위함이다. const 멤버함수는 객체의 멤버변수를 변경할 수 없는 읽지 전용함수로, const로 지정되지 않은 다른 함수도 호출할 수 없다. const 객체 static변수는 전역변수와 같은 성질의 멤버 함수이되, 외부 클래스에서는 접근할 수 없는 변수이다. static 멤버변수 메모리 구조상 전역변수와 같은 공간인 데이터영역... 대입연산자오버로딩const객체포인터배열객체대입friendstaticOOP동적메모리deletecppnewOOP oop 객체지향? 그게 도대체 먼데? 절차적 프로그래밍 초기 프로그래밍 방식 컴퓨터가 해야할 일들을 쭈~욱 순차적으로 나열해 놓는 코딩 방식 예) AllInOneController 클래스의 각 API 처리내용 객체지향 프로그래밍 하나의 사물 (객체) 에 하나의 의미를 부여하는 것처럼 프로그래밍하는 것 "주제별"로 정리해서 메모한다. (ex. 주식 투자, 바리스타 공부) 예) 뭔가 자를 것이 필요하면 '✂️' 를 떠올림 (clas... 항해99OOPcs스터디OOP 객체 지향 원리 적용(3) 객체 지향 원리 적용(2)에서 사용 영역의 코드와 구성영역의 코드 AppConfig를 만들었다.이번에는 할인 정책을 변경하려 하는데 기존에는 사용영역에서 모든 코드를 변경했다면 이제는 사용 영역의 코드는 전혀 손댈 필요 없이 구성 영역인 AppConfig에서만 간단히 수정해 완성해본다. 할인 정책 코드를 변경할때에는 사용 영역의 코드는 수정할 필요 없이 구성 영역의 AppConfig에서만 수... OOPSpringOOP 객체 지향 원리 적용(1) 💡객체지향의 원리 스프링을 사용하지 않고 순수 자바코드로만 개발을하면 객체지향의 원리중 OCP(Open Closed Principle)개방 폐쇄 원칙과 DIP(Dependency Inversion Principle)의존 역전 원칙을 지키지 못하게된다. 할인정책 변경을 위한 코드를 살펴보고 스프링 프레임워크를 사용해 리팩토링해본다. 💡할인정책의 변경 FixDiscountPolicy를 RateD... OOPSpringOOP 오브젝트-코드로 이해하는 객체지향 설계 : Part 6 객체 사이의 협력 역시 어떤 객체가 다른 객체에게 메시지를 통해 무언가를 요청하면서 시작된다. 어떤 객체가 실제로 A라는 책임을 처리할 수 있다고 해도, 만약 해당 책임에 대한 메시지를 받지 않는다면 절대 객체에게 해당 책임을 위임할 수 없다. 위 메서드는 사실 screening.getMovie().getDiscountConditions()와 동일하며, Movie에게 '할인 조건을 가져와라'... OOPOOP React의 전적들... 실무가고싶으면 class형태의 component도 알아야 해 ! useEffect와 axios까지! (Code Camp FE 6기) 근데 두번째 문제는 코드가 많이 길어따.. 이번주 수업은 백엔드를 이해하고 있는 프론트 개발자로 성장하기 위해 ! 글 수정을 위해서 댓글 작성부분을 컴포넌트로 빼서 조건을 걸어줘서 보여주기, 안보여주기 식으로 ! 위에서 이어지는 부분을 밑에서 바꿔주면 이렇게 된다 이렇게 있어도 상관이 없어 ! 그럼 이렇게 바꾸고나서 또 보니, 3개의 함수를 또 하나로 묶어줄수 있을텐데..! 이렇게 쓰고자하는... 렉시컬디스componentdidupdate내장객체Class ComponentupdateboardiduseEffect의존성배열OOPdependency arraycomponent-lifecycleextends componentcomponentWillUnmount()inputcomponentDidMount스프레드연산자State객체지향프로그래밍thisclass컴포넌트생명주기Class Component
[Java] 객체지향 프로그래밍 - 상속 상속을 통해 클래스를 구현하다 보면 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있어서 코드 추가나 변경이 편해요. 여기서 ParentApp 그리고 ChildApp은 상속 관계에 있다고 하고, 상속을 해주는 ParentApp을 부모 클래스, 상속을 받는 ChildApp을 자식 클래스라고 해요. 부모 클래스 자식 클래스 상속 관계를 그림으로 표시하면 아래와 같... Javasuperhas aOverridingOOPinheritanceObject classis-aObject Oriented ProgrammingJava [Java] 객체지향 프로그래밍 - 역사와 클래스 실제 사물의 속성과 기능을 분석한 다음, 데이터(변수)와 함수로 정희하여 실제 세계를 컴퓨터 속에 옮겨 놓은 것과 같은 가상 세계를 구현하고 이 가상세계에서 모의실험을 함으로써 많은 시간과 비용을 절약할 수 있게 되요. 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있어요. 그리고 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있어요. 객체는 TV, 에어컨 ... JavainstancevariablesOOPobjectObject Oriented ProgrammingmethodclassJava Java 프로그래밍 : 객체지향 (1) 자바의 특징 Windows, Android, MacOS, UNIX 등 다양한 환경에서 동작한다. Object-Oriented Programming, 조립식 프로그래밍. 자바의 장점 객체를 재사용할 수 있다. 프로그램 확장이 편리하다. 클래스와 객체 클래스(Class)는 자바 프로그래밍의 최소 단위이며, 객체(Object)를 만들기 위한 설계도라고 할 수 있다. 또한 오브젝트를 인스턴스라고 부... static자바클래스객체생성자메소드OOPJavaJava [Java] 객체지향 프로그래밍 - 오버로딩 메서드도 변수와 마찬가지로 같은 클래스 내에서 서로 구별될 수 있어야 하기 때문에 각기 다른 이름을 가져야 해요. 하지만 한 '클래스' 내에서 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있어도 매개변수 개수 또는 타입이 다르면 같은 이름을 사용해서 정의가 가능해요. 이처럼 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 메서드 오버로딩Overloading, 또는 오버로딩O... Object Oriented ProgrammingVarargsOOPJavaoverloadingJava [Java] 객체지향 프로그래밍 - 생성자 App 클래스를 예로 들어 인스턴스 생성하는 과정은 아래와 같아요. 컴파일을 할 때 소스 파일*.java의 클래스가 생성자가 하나도 없다면 컴파일러는 자동적으로 아래와 같은 생성자를 추가해서 컴파일해요. 아무 기능도 수행하지 않기 때문에 생성과 동시에 초기화가 필요한 인스턴스는 반드시 생성자를 선언해줘야 해요. 근데 만약에 매개변수가 있는, 기본 생성자가 아닌 생성자가 선언되어 있고, 기본 ... Object Oriented ProgrammingConstructordeep copyshallow copyOOPJavaConstructor Spring 객체지향 원칙 Open-Closed Principle 소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다. 구현 객체를 변경 할 때 클라이언트 코드(interface부)를 변경해야하면 안된다. Dependency Inversion Principle 추상화에 의존해야지, 구체화에 의존하면 안된다. 클라이언트가 구현 클래스에 의존하지 말고, 인터페이... 객체지향SpringOOPOOP [Java] 객체지향 프로그래밍 - 클래스 내 변수 초기화 변수를 선언하고 처음으로 값을 저장하는 것을 변수의 초기화라고 해요. 변수의 초기화는 경우에 따라 필수 또는 선택적이기도 하지만, 가능하면 선언과 동시에 적절한 값으로 초기화하는 것이 좋아요. 클래스에선 인스턴스 변수는 따로 초기화하지 않고 사용해도 되요. 자료형에 따라 적절한 값으로 초기화를 해주기 때문이에요. 하지만 지역 변수는 반드시 사용하기 전에 초기화해야 해요. 참고로 각 타입의 기... Constructor InitializationObject Oriented ProgrammingExplicit initializationinitialization blockinstance variableOOPJavaConstructor Initialization Java 프로그래밍 : 객체지향 (3) 상속 (extends) 상속을 사용하면 코드 중복을 제거하고, 기존 클래스를 확장하기 쉬워 프로그램 확장성을 증가시킬 수 있다. class A extends B {} 와 같은 형식으로 사용한다. B 클래스를 A가 상속받는 것이다. 이 경우 B가 부모 클래스, A가 자식 클래스가 된다. 해당 클래스의 필드는 물론이고 메소드를 그대로 사용할 수 있다. 업캐스팅이란, 자식 객체를 부모의 타입으로 ... 자바객체지향protected상속그룹화super인터페이스접근제어자업캐스팅오버라이딩다형성OOPJavaJava [Java] 객체지향 프로그래밍 - 제어자 제어자Modifier는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여할 수 있어요. 제어자의 종류는 크게 접근 제어자와 그 외의 제어자로 나눌 수 있어요. 접근 제어자 : public, protected, default, private 단, 접근 제어자의 경우 한번에 네 가지 중 하나만 사용할 수 있어요(public, private을 동시에 적용할 수 없다는 의미에... abstractstaticObject Oriented ProgrammingencapsulationfinalAccess ModifierOOPJavaAccess Modifier [Java] 객체지향 프로그래밍 - 다형성 객체지향 개념에서 다형성이란 여러가지 형태를 가질 수 있는 능력을 의미하며, 자바에서는 한 타입의 참조 변수로 여러 타입의 객체를 참조할 수 있도록 하여 다형성을 프로그래밍적으로 구현했어요. 위 예제처럼 Person과 NoobNoob이 상속 관계에 있으면 부모 클래스 타입의 변수에 자식 클래스 인스턴스를 참조할 수 있게 해요. 그래서 자식 타입의 참조 변수로 부모 타입의 인스턴스를 참조하는 ... Up castingDown CastingObject Oriented ProgrammingPolymorphisminstanceofOOPJavaDown Casting [Java] 객체지향 프로그래밍 - 추상 클래스 클래스를 설계도에 비유하면, 추상 클래스Abstract Class는 미완성 설계도에 비유할 수 있어요. 미완성 설계도로 제품을 완성할 수 없듯이, 추상 클래스를 통해 인스턴스를 생성할 수 없어요. 추상 클래스는 상속을 통해 자식 클래스에 의해서만 완성될 수 있어요. 제품에 공통으로 사용하는 기능들을 naive하게 구현을 하고 작업하게 된다면 추후 다른 파생 제품을 만들 때도 이런 기반을 숙지... Object Oriented ProgrammingOOPJavaabstract classJava [Java] 객체지향 프로그래밍 - 인터페이스 인터페이스Interface는 추상 메서드를 가지지만 추상화 정도가 높아서 추상 클래스와 달리 구체화된 일반 메서드 또는 멤버 변수를 구성원으로 가질 수 없어요. 오직 추상 메서드와 상수만을 멤버로 가질 수 있고 그 외에 다른 어떤 요소도 허용하지 않아요. 그리고 접근 제어자로 public 또는 default만 사용할 수 있어요. (클래스 메서드와 디폴트 메서드 제외) 원래 인터페이스의 모든 ... Object Oriented ProgramminginterfaceOOPJavaJava [Java] 객체지향 프로그래밍 - 내부 클래스 내부 클래스Inner Class는 클래스 내에 선언된 클래스에요. 한 클래스를 다른 클래스의 내부 클래스로 선언하면 두 클래스의 멤버들 간에 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 클래스를 감추면서 코드의 복잡성을 줄일 수 있어요(캡슐화). 내부 클래스 선언 위치에 따라 구분을 지을 수 있어요. 1. 인스턴스 클래스 외부 클래스의 멤버 변수 선언 위치에 선언해요. 외부 클래스의... Static classObject Oriented Programminganonymous classlocal classinner classInstance ClassOOPJavaInstance Class 16) React의 전적들... 실무가고싶으면 class형태의 component도 알아야 해 ! useEffect와 axios까지! 실무중심주의 코드캠프의 커리큘럼 체고야!!!! (Code Camp FE 6기) 스프레드 연산자를 잘 활용하면 코드를 간략하고 한 눈에 보기쉽게 리팩토링 할 수 있으니 포트폴리오에도 적용해보시길 바랍니다! state, props, refs, 컴포넌트 메서드와 생명주기 메서드를 this로 참조할 수 있었습니다. 이렇게 컴포넌트 생명주기를 함수형 컴포넌트에서 그려주기 위해서 저희는 useEffect를 사용해서 그려주었습니다. 오늘 새로 배운 react-Hook 두 가지 us... 컴포넌트생명주기updateboardidclassuseEffect내장객체OOP의존성배열렉시컬디스inputcomponentdidupdate스프레드연산자componentWillUnmount()extends componentClass ComponentcomponentDidMountcomponent-lifecycleState객체지향프로그래밍dependency arraythisClass Component 클래스, 객체, 인스턴스, 객체지향 객체지향언어를 공부하면 중요하게 다루는 것 중 하나가 클래스(class)입니다. 📚 클래스(class) ✍ 클래스 안에 정의한 속성들을 데이터 멤버(data member)라고 부르고, IT관련 객체 지향 프로그래밍에서 사용하는 언어로서, 객체를 만들고 조작하며 객체끼리 관계를 맺음으로써 다수의 객체가 함께 수행될 수 있게 한다. ▶ 객체(object) 객체 지향 프로그래밍(OOP)이나 설계에... 클래스인스턴스객체객체지향언어OOPOOP 더 객체지향적인 Rails 다음과 같은 코드를 본 적이 있나? 아마 모든 코드가 그렇지는 않겠지만, 저런 코드를 본 적이 있을 것이다. 위 코드는 장황하고 읽기 어렵다. 또한 새로 기능추가를 하는 경우, 수많은 if~else 사이를 왔다갔다해야한다. 어떻게 고칠 수 있을까? 메소드의 이름인 role_name과 role_description에 힌트가 있다. 바로 Role이라는 PORO(Plain Old Ruby Obje... 객체지향Ruby on RailsOOPPOROOOP 오브젝트-코드로 이해하는 객체지향 설계 : Part 1 티켓을 구매할 수 있는 매표소: TicketOffice 어떤 객체(Audience)가 변경될 때 그 객체에 의존하는 다른 객체(Theater)도 함께 변경될 수 있다는 것이다. 즉, 우리의 최종 목표는 의존성을 낮춰 객체의 변경이 다른 객체에 많은 영향을 끼치지 않는 변경이 용이한 설계를 만드는 것이다. 설계를 변경하기 어려웠던 이유는 Theater 가 Audience, TicketSelle... OOPOOP 오브젝트-코드로 이해하는 객체지향 설계 : Part 4 이번 장에서는 우리가 지금까지 해왔던 책임 중심의 설계가 아닌 상태 중심의 설계를 살펴보며 훌륭한 객체지향 설계는 어떤 특징이 있는지, 그리고 설계의 품질을 향상시키는 것에는 어떤 것들이 필요하며 동시에 어떤 것을 포기해야하는지를 알아보겠습니다. 데이터 중심의 관점에서 객체는 자신이 포함하고 있는 데이터를 조작하는데 필요한 오퍼레이션을 정의하지만, 책임 중심의 관점에서 객체는 다른 객체가 요... OOPOOP 2022년 03월 22일 TIL 1. 객체지향 프로그래밍 객체 개념적인 용어 : 객체 type은 class로 만들 수 있다. implements Runnable 객체는 스스로 동작할 수 있어야 한다. 밖에서 객체 내의 저옵를 접근하지 못하도록 한다. 객체 소유 상속된 객체에서도 접근 가능 같은 패키지 내에서 접근 가능(패키지 가능성, 패키지 내에서만 특정 객체의 접근을 허용하는 경우) 누구든지 접근 가능 추상화된 객체 추상... SOLIDOOP데브코스TILClass DiagramClass Diagram (ch3) - Loops, random numbers 그냥 프로그램 종료 ex. 에러만남 pseudorandom numbers: 진짜 랜덤은 아님, by a seed value same seed -> same sequence of random numbers math 는 import 없이 사용할수있음... JavaOOPJava 오브젝트-코드로 이해하는 객체지향 설계 : Part 5 따라서 첫번째 원칙은 우린 책임을 수행할 정보를 알고 있는 객체에게 책임을 할당하는 것이다. 따라서 Screening 객체는 '예매하라' 라는 메시지를 수신할 수 있다. 하지만 우리는 할인 정책이 있다. 따라서 우리는 할인 여부를 판단하라 메시지를 전송해 외부의 도움을 요청해야한다. 이처럼 메시지(책임)를 처리하기 위해 정보 전문가 객체들을 선택하며, 처리 불가능한 부분은 다른 정보 전문가에... OOPOOP (ch3) - Branching Mechanism, Boolean expression 아래와 동일!! 사전식 뒤에있으면 양수... JavaOOPJava C++_OOP4 const 사용 목적은 객체의 멤버변수를 변경시킬 수 없도록 하기 위함이다. const 멤버함수는 객체의 멤버변수를 변경할 수 없는 읽지 전용함수로, const로 지정되지 않은 다른 함수도 호출할 수 없다. const 객체 static변수는 전역변수와 같은 성질의 멤버 함수이되, 외부 클래스에서는 접근할 수 없는 변수이다. static 멤버변수 메모리 구조상 전역변수와 같은 공간인 데이터영역... 대입연산자오버로딩const객체포인터배열객체대입friendstaticOOP동적메모리deletecppnewOOP oop 객체지향? 그게 도대체 먼데? 절차적 프로그래밍 초기 프로그래밍 방식 컴퓨터가 해야할 일들을 쭈~욱 순차적으로 나열해 놓는 코딩 방식 예) AllInOneController 클래스의 각 API 처리내용 객체지향 프로그래밍 하나의 사물 (객체) 에 하나의 의미를 부여하는 것처럼 프로그래밍하는 것 "주제별"로 정리해서 메모한다. (ex. 주식 투자, 바리스타 공부) 예) 뭔가 자를 것이 필요하면 '✂️' 를 떠올림 (clas... 항해99OOPcs스터디OOP 객체 지향 원리 적용(3) 객체 지향 원리 적용(2)에서 사용 영역의 코드와 구성영역의 코드 AppConfig를 만들었다.이번에는 할인 정책을 변경하려 하는데 기존에는 사용영역에서 모든 코드를 변경했다면 이제는 사용 영역의 코드는 전혀 손댈 필요 없이 구성 영역인 AppConfig에서만 간단히 수정해 완성해본다. 할인 정책 코드를 변경할때에는 사용 영역의 코드는 수정할 필요 없이 구성 영역의 AppConfig에서만 수... OOPSpringOOP 객체 지향 원리 적용(1) 💡객체지향의 원리 스프링을 사용하지 않고 순수 자바코드로만 개발을하면 객체지향의 원리중 OCP(Open Closed Principle)개방 폐쇄 원칙과 DIP(Dependency Inversion Principle)의존 역전 원칙을 지키지 못하게된다. 할인정책 변경을 위한 코드를 살펴보고 스프링 프레임워크를 사용해 리팩토링해본다. 💡할인정책의 변경 FixDiscountPolicy를 RateD... OOPSpringOOP 오브젝트-코드로 이해하는 객체지향 설계 : Part 6 객체 사이의 협력 역시 어떤 객체가 다른 객체에게 메시지를 통해 무언가를 요청하면서 시작된다. 어떤 객체가 실제로 A라는 책임을 처리할 수 있다고 해도, 만약 해당 책임에 대한 메시지를 받지 않는다면 절대 객체에게 해당 책임을 위임할 수 없다. 위 메서드는 사실 screening.getMovie().getDiscountConditions()와 동일하며, Movie에게 '할인 조건을 가져와라'... OOPOOP React의 전적들... 실무가고싶으면 class형태의 component도 알아야 해 ! useEffect와 axios까지! (Code Camp FE 6기) 근데 두번째 문제는 코드가 많이 길어따.. 이번주 수업은 백엔드를 이해하고 있는 프론트 개발자로 성장하기 위해 ! 글 수정을 위해서 댓글 작성부분을 컴포넌트로 빼서 조건을 걸어줘서 보여주기, 안보여주기 식으로 ! 위에서 이어지는 부분을 밑에서 바꿔주면 이렇게 된다 이렇게 있어도 상관이 없어 ! 그럼 이렇게 바꾸고나서 또 보니, 3개의 함수를 또 하나로 묶어줄수 있을텐데..! 이렇게 쓰고자하는... 렉시컬디스componentdidupdate내장객체Class ComponentupdateboardiduseEffect의존성배열OOPdependency arraycomponent-lifecycleextends componentcomponentWillUnmount()inputcomponentDidMount스프레드연산자State객체지향프로그래밍thisclass컴포넌트생명주기Class Component