# abstract class
[Python] abstract class
익숙하지 않은 문법이라 정리를 위해 기록합니다. Abstract class란? 파이썬에서 abstract class는 하위 method의 목록만 가진 class이다. 이 class는 상속받는 class에서 method 구현을 강제하기 위해 사용된다. 사용방법 아래처럼 ABCMeta를 import해서 원하는 abstract_class의 metaclass의 인자값으로 넣어주고, 원하는 하위 method에 @abstractmethod 라는 데코레이터를 붙여주면 된다. 그러면 이 class를 상속받는 class는 반드시 method1을 작성해야한다. 그렇지 않으면 error를 발생시킨다. Reference https://dojang.io/mod/page/view.php?id=2389
[Java] class note
- constructor overloading: must have same name as class have no ‘void’ return type //void is returning null public - methods(getter,setter) override - override toString(built-in method) // printf, println suppose to work with primitive datatype - argument promotion: promotion: conver to upper datatype. ex. float → double, int → long, float, double - Method call stack and stack frames: FIFO(First In First Out): que LIFO(Last In First Out): stack

[C#] 추상 클래스와 인터페이스
📖 1. 추상 클래스 (abstract class) 📌 추상 클래스란? abstract 키워드를 사용하면 상속 받는 클래스에서 공톡적으로 구현해야 하는 클래스나 멤버를 만들 수 있다. > 자식 클래스에 공통적인 정의를 제공하는 것이다. 클래스 정의 앞에 abstract 키워드를 선언하면 클래스를 추상 클래스로 선언할 수 있다. 📌 추상 클래스의 특징 > 추상 클래스는 객체화(인스턴스화) 할 수 없다. 추상클래스의 목적은 여러 파생 클래스에서 공유할 수 있는 기본 클래스의 공통적인 정의를 제공하는 것이다. > 추상 클래스에서는 추상 메서드도 정의할 수 있다. 추상 메서드는 추상 클래스와 마찬가지로 abstrat 키워드를 사용하여 상속받은 클래스에서 함수를 재정의하는 것이다. >**추상 메서드에는 구현 부분이 없으므로 상속받은 클래스에서 구현 부
0629
Inheritance(상속) 접근제한자 별개의 package 설정 public, protected : 부모 class가 다른 package에 있어도 변수에 접근 가능 default : 같은 package에 있으면 변수에 접근 가능 private : 같은 package에 있어도 변수에 접근 불가 SuperObj와 다른 package 설정 후 SuperObj(부모 class) 호출 command : (class 속성) (class명) “extends (super class명)”{ } 부모 class 호출하면 반드시 부모 생성자 호출 필요 자식 class의 부모 생성자 호출 시 부모 생성자의 인자가 무조건 첫 줄에 위치 자식 class의 method만 호출해도 부모 class의 것까지 중복 호출 OverRiding(Return Method) method를 만들어 return 값을 지정 하위 class

JAVA abstract class, interface, Object class (230628)
1. 추상 클래스 와 interface 의 차이는? > - 추상클래스와 인터페이스의 차이 > - 추상클래스는 abstract가 아닌 일반 메소드가 들어갈 수 있다.(일반 클래스에 추상 메소드를 추가할 수 있는 클래스) > - 인터페이스는 상수랑 abstract메소드만 가능 2. Object 클래스의 11개의 함수를 나열해 보시오. > 3. 아래의 프로그램을 하시오(equals 함수). 문제 > 결과 > 코드 > 실행결과 > 4.아래를 프로그래밍 하시오.(toString() 함수) 문제 > 결과 > 코드 > 실행결과 > 5. 아래를 구현하시오. 문제 > > 코드 >
Spring Boot Interface - 골격 구현 클래스 - 클래스 구조 변경(Feat. Composition)
안녕하세요 오늘은 Spring Boot의 클래스들을 Interface - 골격 구현 클래스 - 클래스 구조로 변경하는 작업을 진행해보겠습니다. 이펙티브 자바의 18~25번 아이템을 프로젝트에 적용시켜보았습니다. 기존 클래스의 경우 Spring Boot에서 기본적으로 제공하는, 혹은 별도의 dependency를 추가하여 제공받는 클래스를 필요한 클래스에 직접 상속하는 방식으로 진행하였습니다. 하지만 이 경우 상속받는 클래스에서 상위 클래스의 메소드를 오버라이딩하는 과정에서 상위 메소드를 중복 실행하는 등 로직 측면에서 잘못 구현될 수 있기 때문에 클래스의 안정성이 떨어집니다. 또한 성격이 유사한 클래스의 경우 같은 패키지에 넣어놓고 어노테이션 등으로 구별하였습니다. 이 경우는 코드의 중복이 발생하여 유지 보수 및 가독성의 문제가 있습니다. 따라서 저는 성격이 유사한 클래스들의 공통 부분을 묶은 후 인터페이스에서 메소드를 정의하고, 인터페이스를 구현한 추상 클래스인 골격 구현 클래스
[TS] interface와 abstract class의 차이에 대한 고민
interface와 abstract class의 차이 - 추상 클래스의 경우 단일 상속만 가능, 인터페이스는 다중 상속 가능 - 추상클래스는 abstract modifier(제어자)가 표기된 변수나 메소드만 구현하면 되지만, interface는 선언된 모든 변수나 메소드를 구현해야한다.
[Dart] 추상 클래스와 인터페이스
이번에는 추상 클래스(Abstract class)와 인터페이스(Interface)를 정리해보고자 합니다. 아직도 Class가 뭔지 모르겠다면 아래 링크를 참고해주세요. Class가 뭔지 모르겠다면? dart문법 공식 문서 : https://dart.dev/language dart Abstract class 공식 문서 : https://dart.dev/guides/language/abstract-classes dart Interface 공식 문서 : [https://dart.dev/guides/language/interfaces](htt

Flutter, 개발 생산성을 2배 증가 시켜줄 BaseScreen 모듈 : Getx버전
해당 포스팅은 유튜브 영화&드라마 리뷰 영상 큐레이션 플랫폼 Plotz를 개발하면서 도입된 기술 및 방법론에 대한 내용을 다루고 있습니다. 다운로드 링크 : 앱스토어 / 플레이스토어 * 📝 셀프진단 체크리스 * ✔️ GetX 상태관리 라이브러리를 이용하고 있다. ✔️ MVVM 아키텍쳐를 프로젝트에 적용하고 있다. ✔️ 프로젝트에서 관리하는 스크린 위젯의 개수가 5개 이상이다. 위 체크리스트에 모두 해당하시나요? 그렇다

Flutter, 프로답게 유틸리티 class 구현하기 (feat : 메모리 최적화)
해당 포스팅은 유튜브 영화&드라마 리뷰 영상 큐레이션 플랫폼 Plotz를 개발하면서 도입된 기술 및 방법론에 대한 내용을 다루고 있습니다. 다운로드 링크 : 앱스토어 / 플레이스토어 일반적으로 앱 내에서 자주 사용되는 리소스(컬러, 폰트, 등등)를 관리하기 위해 유틸리티 클래스를 정의하여 사용합니다. 그런데 자주 사용되는 만큼 중요하지만 놓치기 쉬운 부분들이 있습니다. 이번 글에서는 유틸리티 클래스를 좋은 구조로 작성하는 방법에 대
[typescript] class
추상클래스는 상속만 가능하고 생성은 불가능하다. 추상메서드는 추상클래스 내에서 구현하지 않는다. 선언만 함. private인 경우 상속받았어도 접근할 수 없다. 인스턴스 밖에서 접근할 수 없다. protected 외부로부터는 보호하고 자식 클래스에서는 접근 가능해진다.

2023년 03월 09일 수업노트
01장 자바 개요 Array Array는 객체의 reference 들을 담고 있는 객체이다 Random Random이란 논리적으로 예측할 수 없는 것 일반적으로 Python이나 Java의 Random은 대부분 True Random과 유사한 결과값을 내놓는 Pseudo Random이다. Control Flow Decision-making if switch (예제) Looping for (예제) while (예제) do-while [(예제)](https://www.notion.so/do-

Class - Dart
Class class 생성시 타입 명시 class 객체 생성시 new 불필요 (옵션) class 내에서 this 불필요 (옵션) Constructors Named Constructor Parameters Named Constructor : 콜론을 사용해 argument 와 property 를 일대일 초기화 생성자 생성 Cascade Notation Enums 오타 실수를 줄여준다 Abstract class Inheritance Mixins 생성자가 없는 클래스 with 로 사용 여러 클래스에 재사용 가능

[Kotlin] abstract class / interface
미션을 진행하면서 abstract class를 사용한 이유 오목 미션을 진행하면서 abstract class와 interface의 차이에 대해서 생각해보았다. 나는 abstract class인 OmokPlayer를 상속하는 BlackStonePlayer, WhiteStonePlayer클래스를 생성했다. 여기서 내가 interface를 구현(implement)하는 것이 아닌 abstract class를 상속(inheritance)하도록 만든 이유는 무엇일까? BlackStonePlayer와 WhiteStonePlayer의 중복되는 프로퍼티와 메서드 추상화 해놓게 되면 다른 색깔의 플레이어가 새로 생겼을때 클래스를 추가, 확장을 위해

kotlin의 class
Class 코틀린은 자바와 마찬가지로 class 키워드를 사용하여 클래스를 선언합니다. 또한 코틀린의 클래스는 본문을 생략할 수 있습니다. 생성자는 기본 생성자와 하나 이상의 보조 생성자가 존재 할 수 있습니다. 또한 기본 생성자는 constructor 를 생략할 수 있습니다. 코틀린에서는 클래스에 프로퍼티를 선언할때 후행 쉼표 trailing comma를 사용할 수 있습니다. 후행 쉼표를 사용한다면 이전의 마지막 줄을 수정하지 않고 프로퍼티를 쉽게 추가할 수 있고 git에서 diff 등으로 코드를 비교했을때 변경사항을 명확히 알 수 있습니다. Property 먼저 코틀린의 프로퍼티는 val , var 키워드를 모두 사용할 수 있습니다. 프로퍼티를 수정하거나 사용하
추상 클래스와 인터페이스
추상 메서드 ( Abstract Method ) abstract 키워드와 함께 원형만 선언하고, 내부를 구현하지 않은 메서드 추상 클래스 ( Abstract Class ) abstract 키워드로 선언된 클래스 추상 메서드를 최소 한 개 이상 가지고 abstract로 선언된 클래스 추상 메서드가 없어도 abstract로 선언한 클래스 구현 자식 클래스에서 부모 클래스의 모든 추상 메서드를 오버라이딩하여 구현 자식 클래스는 extends 키워드로 상속받는다. 단 하나의 클래스만 상속이 가능하다. (단일 상속) 목적 객체를 생성하기 위함이 아닌, 상속으로 부모 클래스를 활용하기 위함 여러 클래스들의 공통된 부분을 추상화하여 상속받는 클래스에게 구현을 강제화 메서드의 동작을 자식에게 위임 확장의 의미가 있다.
Java - 추상 클래스
추상 클래스란? 객체를 직접 생성할 수 있는 클래스 -> 실체 클래스 클래스들의 공통적인 특성(필드, 메소드)을 추출해서 선언한 클래스 -> 추상 클래스 추상 클래스와 실체 클래스는 상속 관계. 추상 클래스가 부모. 실체 클래스가 자식으로 구현, 실체 클래스는 추상 클래스의 모든 특성을 물려받음과 동시에 추가적인 특성을 가질 수 있음 추상 클래스 = 하나 이상의 추상 메소드가 포함된 클래스 추상 클래스의 용도 공통된 필드와 메소드의 이름을 통일할 목적 실체 클래스를 설계하는 사람이 여러 사람일 경우, 실체 클래스마다 필드와 메소드가 제각기 다른 이름을 가질 수 있음(데이터와 기능이 모두 동일하지만 이름만 다른 경우) 위와 같은 상황에선 객체마다 사용 방법이 달라짐 -> 괜히 헷갈리게 됨 해결안 : 추상 클래스에 필드와 메소드를 선언하고 상속해주어 필드와 메소드 이름 통일할 수 있음 실체 클래스를 작성할 때 시간 절약 공통적인 필드와
[자바의정석]Chapter 07. 객체지향 프로그래밍 II
1. 상속(inheritance) 1.1 상속의 정의 & 장점 > 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 코드의 재사용성을 높이고 코드의 중복을 제거-> 프로그램의 생산성과 유지보수에 큰 기여 extends ex) 조상 클래스 : 부모(parent)클래스, 상위 (super)클래스, 기반(base)클래스 자손 클래스 : 자식 (child)클래스, 하위 (sub)클래스, 파생된 (derived) 클래스 인스턴스를 생성하면 조상 클래스의 멤버와 자손 클래스의 멤버가 합쳐진 하나의 인스턴스로 생성된다. *생성자
OOP - Polymorphism, Abstract Class
:: 다형성 (폴리모피즘, Polymorphism) 경비원은 동물을 짖게(barkAnimal)하여 건물을 지킨다. instanceof 어떤 객체가 특정 클래스의 객체인지 조사할 때 사용 animal instanceof Tiger == animal 객체는 Tiger 클래스로 만들어진 객체니? 아래와 같은 방식은 동물 추가될 때마다 분기문 추가... 띠로리 Barkable 인터페이스를 만들어 각 동물들이 Barkable 인터페이스 구현하도록 변경 콤마를 이용해서 여러개를 implements 할 수 있다. 위와 같이 하나의 객체가 여러개의 자료형 타입 가질 수 있는 것이 다형성이다. Predator 로 선언된 predator 객체와 Barkable 로 선언된 barkable 객체는 사용할 수 있는 메서드가 서로 다르다 predator 객체는 getFood 메서드만 호출 가능 barkable 객체는 bark 메서드만
Flutter #55 - CircleAvatar
Flutter 일기 55번째 참고 1 : https://api.flutter.dev/flutter/material/CircleAvatar-class.html 참고 2 : https://api.flutter.dev/flutter/painting/ImageProvider-class.html Google에서는 User Profile을 띄울 때, 설정한 사진이 없으면 이렇게 사용자 이름의 첫 글자를 대문자로 띄워준다. 한글 이름이 다 뜨는 경우도 물론 있긴 하더라. 아무튼 저런 동그란 위젯을 쓸 경우가 빈번히 발생하는데, 이럴 때 유용한 것이 CircleAvatar이다. CircleAvatar CircleAvatar의 생성자는 이렇게 생겼다.