본문 바로가기
반응형

분류 전체보기66

[Java] Interface와 Abstract Class의 차이 💡Interface 추상 메서드만 포함: 인터페이스는 추상 메서드의 집합으로 이루어져 있습니다. 추상 메서드는 구현 내용이 없고 메서드 시그니처만 정의됩니다. 클래스가 인터페이스를 구현하면 해당 클래스는 인터페이스에 정의된 모든 메서드를 구현해야 합니다. 다중 상속 지원: Java에서 클래스는 단일 상속만 허용되지만, 여러 인터페이스를 구현할 수 있습니다. 이로 인해 다중 상속의 일부 장점을 활용할 수 있습니다. 구현을 강제함: 클래스가 인터페이스를 구현하면 그 인터페이스에 정의된 모든 메서드를 반드시 구현해야 합니다. 이를 통해 특정한 동작을 보장하고, 코드의 일관성을 유지합니다. 인스턴스 생성 불가: 인터페이스는 객체를 직접 생성할 수 없습니다. 따라서 인터페이스를 구현한 클래스의 인스턴스를 생성하여.. 2023. 10. 11.
[Java] 클래스, 객체, 인스턴스의 차이 💡클래스란? 클래스는 객체의 설계도 또는 템플릿입니다. 클래스는 어떤 객체가 가져야 할 속성 (멤버 변수)과 동작 (메서드)을 정의합니다. 클래스는 객체를 생성하기 위한 설계도 역할을 하며, 객체를 생성할 때 실제 데이터가 아닌 객체의 특성과 행동을 정의합니다. 클래스는 여러 개의 객체를 생성할 수 있는 일종의 틀로 생각할 수 있습니다. 1 2 3 4 5 6 7 8 9 class Car { String make; String model; void start() { // Car 객체를 시작하는 동작 } } cs 💡객체란? 객체는 클래스의 인스턴스입니다. 즉, 클래스를 기반으로 실제 데이터를 포함하는 실체를 의미합니다. 객체는 클래스의 구조대로 생성되며, 클래스의 멤버 변수에 실제 데이터를 저장할 수 있습니.. 2023. 10. 10.
[Java] JVM의 구조 💡JVM의 동작방식 [Java] 컴파일 과정 ✔️컴파일이란? 프로그래밍 언어로 작성한 코드는 사람이 이해하고 작성하기 편리한 형태입니다. 그러나 컴퓨터는 이러한 코드를 직접 실행할 수 없습니다. 여기에서 컴파일러가 등장합니다. richwish.tistory.com 자바로 개발된 프로그램을 실행하면 JVM은 OS에 메모리를 할당합니다. 자바컴파일러(javac)가 자바파일(.java)을 바이트코드(.class)로 컴파일 합니다. ClassLoader를 통해서 바이트코드를 JVM Runtime Data Area로 로딩합니다. Runtime Data Area에 있는 바이트코드들은 Excution Engine을 통해 해석됩니다. 해석된 바이트코드는 Runtime Data Area의 각 영역에 배치되어 수행하며 이.. 2023. 10. 5.
[Java] OOP의 5대원칙(SOLID) 📌 단일 책임 원칙 (Single Responsibility Principle - SRP) 하나의 클래스는 하나의 책임만 가져야 합니다. 즉, 클래스는 변경의 이유가 하나여야 합니다. 이를 통해 클래스를 변경할 필요가 있을 때 다른 부분에 영향을 미치지 않도록 할 수 있습니다. 📌 개방/폐쇄 원칙 (Open/Closed Principle - OCP) 소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에 대해서는 개방적이어야 하지만 수정에 대해서는 폐쇄적이어야 합니다. 즉, 새로운 기능을 추가할 때 기존 코드를 수정하지 않고 확장할 수 있어야 합니다. 이를 위해 인터페이스와 추상화를 활용합니다. 📌 리스코프 치환 원칙 (Liskov Substitution Principle - LSP) 자식 클래스는 부모 .. 2023. 10. 4.
반응형