Tag: oop

인프런 강의 후기 최범균님 <객체지향 프로그래밍 입문>

인프런에서 최범균님의 객체지향 프로그래밍 입문 강의를 듣고, 정리한 포스팅이다. 간단하게 정리했기 때문에 이 포스팅을 보는것만으로 OOP를 이해할 수 있다고 생각하지는 않는다. 아직 OOP가 익숙하지 않다면, 꼭 강의를 듣고 다시 이 포스팅을 보면서 정리하면 좋을것 같다. 캡슐화 추상화 상속보단 조립 기능/책임 분리 DI, Dependency Inje

객체지향 설계 원칙 5가지

지난 포스팅 객체지향 주요특징에 이어 이번엔 객체지향의 주요 5가지 원칙을 정리해보려고 한다. 객체지향 5가지 원칙인프런에서 스프링 핵심 원리 - 기본편을 수강하며 정리한 내용이다. 토비의 스프링을 읽으면서 템플릿 메소드에 대한 내용이 쉽게 와닿지않아서 수강한 내용이었는데, 도움이 많이 되었다. SRP (Single Responsibility Princ

객체지향 주요특징 4가지

객체지향을 공부하며 정리한 포스팅이다. 객체지향의 주요 특징 4가지와 원칙 5가지를 구분하여 2개의 포스팅으로 정리했다. 객체지향 특징 4가지일반적으로 자바라는 언어를 공부하면 공부하게 되는 4가지 특징들이다. 추상화 캡슐화 상속 다형성 추상화 추상화는 실제 세상을 객체화하는게 아니라 필요한 정보만을 중심으로 간소화하는것을 의미한다. 실제 지형도보다

자바에서의 다중상속 문제(a.k.a. Diamond Problem)

자바에서는 왜 다중상속을 허용하지 않는걸까? 그리고 어떻게 인터페이스를 통해서는 다중상속이 가능한걸까? 이를 알아보기 위해 아래와 같은 상속관계를 갖는 클래스들을 생성해보겠다. Child -> Mother -> GrandMother, Father -> GrandMother Person.java 1234567public class Pers

디미터 법칙(Law of Demeter)

클린코드과정에서 코드리뷰를 통해 알게된 원칙이다. 흥미로운 원칙이기도 하고, 우아한 테크코스 기술블로그에서 심플하게 잘 정리해주셔서 정리해보았다. 객체간 결합도가 높아지게 될 경우 객체에 변경사항이 발생할 경우, 코드 곳곳에서 문제가 발생할 수 있다. 이는 유지보수의 어려움을 야기하게 된다. 디미터 법칙은 이런 문제를 지양하고자 하는 객체간 결합도를

Live Study 8주차 - 인터페이스

인터페이스 정의하는 방법 인터페이스 목적 : 느슨한 결합 인터페이스 구현하는 방법 implements 익명 클래스 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메서드(Default Method), 자바8 디폴트 메서드가 구현체의 메서드와 이름이 중복될 경우 인터페이스의 static 메서드, 자바8 인터페

Live Study 7주차 - 패키지

package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 package 키워드패키지는 클래스의 묶음이며, 자바는 반드시 하나의 패키지에 속해야 한다. 패키지의 특징은 다음과 같다. 점을 구분자로 하여 계층구조로 구성한다. 패키지는 물리적으로 클래스 파일을 포함하는 하나의 디렉토리이다.

Live Study 6주차 - 상속

자바 상속의 특징 다중상속 상속관계에서 메서드 호출 업캐스팅/다운캐스팅 super 키워드 메소드 오버라이딩 메서드 오버라이딩과 메서드 오버로딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 자바 상속의 특징자식 클래스는 부모 클래스의 상태와 기능을 사용 가능1234p

Live Study 5주차 - 클래스

클래스와 객체 클래스 정의하는 방법 접근제한자 생성자 객체 만드는 방법 (new 키워드 이해하기) 메서드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 클래스와 객체클래스에 앞서 객체 를 먼저 이해할 필요가 있다. 객체를 중심으로 프로그래밍을 하는 것을 객체지향 프로그래밍(Object Oriented Programming)이라 한다.

객체를 직접 호출하는 것과 인스턴스를 호출하는것의 차이 (메모리 주소값 비교)

객체지향에 대해서 정확히 이해하고 있지 못한것 같아서 인프런에서 객체지향 프로그래밍 입문와 생활코딩에서 JAVA 객체지향 프로그래밍 수업을 정주행하다가 정리한다. 10분 짜리 영상을 정말 거의 10번 가까이 재생하면서 계속 이해하려고 노력했고, 그러고나서도 다시 포스팅하려고 하니까 더 긴 시간이 걸렸다. 하지만 이렇게 정리하고 나니까 조금 뿌듯하다 :)