📘 자바 객체지향 🟦 절차적 / 구조적 프로그래밍 🔷 자바 프로그램의 개발과 구동 🔹 JVM(Java Virtual Machine) 현실세계 가상 세계 소프트웨어 개발 도구 JDK - 자바 개발 도구 JVM용 소프트웨어
기계중심의 기계어에서 조금 더 인간을 편하게 하는 어셈블리어, C, C++, 자바로 발전해 온 과정 모두 로우 레벨의 기계가 아닌 하이 레벨의 인간을 배려하기 위한 과정그러나 절차적/구조적 프로그래밍까지의 과정은 인간이 기계를 이해하려는 노력에서 크게 벗어나지 못함➡️
상속은 가족관계와 같은 계층도나 조직도로 이해하면 안된다.상속은 아래 그림과 같은 분류도로 이해해야 한다.그림을 보면 동물과 포유류, 어류는 상속 관계가 아니다. 마찬가지로 포유류와 개, 판다도 상속 관계가 아니다.따라서 상속을 '부모 클래스 - 자식 클래스' 라는 표
말 그대로 '올라타다 <---> 짐을 쌓다'를 생각 생각하자.위의 그림을 위에서 내려다 본다면 좌측은 맨 위의 상자만 우측은 모든 상자가 보일 것이다.오버라이딩은 하나, 오버로딩은 여러개가 포인트이다.오버라이딩은 같은 Method 이름, 같은 Parameter 목
객체 멤버 UML 표기법\- : private // 본인만 접근 가능~ : default // 같은 패키지 내의 클래스에서 접근 가능\\+ : public // 모두가 접근 가능⬇️ 예시 코드
: 선언부 존재, 구현부 없는 메서드추상 메서드를 하나라도 갖고 있는 클래스라면 Abstract Class로 선언해야 함추상 클래스는 객체(인스턴스)를 만들 수 없음 --> new 사용 불가추상 메서드는 하위 클래스에게 메서드의 구현 강요 --> 오버라이딩 강제추상 메
High Cohesion, Loos Coupling(응집도는 높이고, 결합도는 낮추라)고전 원칙을 객체 지향 관점에서 재정립 한 것SOILD는 객체 지향 4대 특성을 기반으로하며 디자인 패턴의 뼈대, 나아가 스프링 프레임워크의 근간임"어떤 클래스를 변경해야 하는 이유는
"자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크"디자인 패턴은 객체 지향의 특성 중 상속(extends), 인터페이스(interface/implements), 합성(객체를 속성으로 사용)을 이용한다.Adapter는 변환기라 할 수 있고
IoC(Inversion of Control/제어의 역전)라고도 하는 DI(Dependency Injection/의존성 주입)(⬆️ 문장이 어색함 -> 현실과 맞지 않음)의존성을 단순하게 정의하면 newnew를 실행하는 Clothes가 Button에 의존➡️ 전체가 부