개발/OOP

· DEV/Java
추상클래스(Abstract Class) 추상 클래스란 인스턴스화 할 수 없는 클래스로, 하나 이상의 추상 메소드(abstract method)를 포함하는 클래스입니다. 추상 메소드는 선언만 있고 구현이 없는 메소드입니다. 추상 클래스는 하위 클래스에서 공통된 기능을 상속하면서, 하위 클래스가 구현해야 할 기능을 강제하는 역할을 합니다. 특징 추상 클래스는 인스턴스를 생성할 수 없습니다. 따라서, 추상 클래스를 상속받은 자식 클래스의 인스턴스를 통해 사용할 수 있습니다. 추상 클래스는 추상 메소드와 일반 메소드를 모두 포함할 수 있습니다. 추상 클래스를 상속받은 자식 클래스는 추상 클래스에 선언된 추상 메소드를 모두 구현해야 합니다. Example. 코드로 알아보자 abstract class Animal ..
· DEV/Java
Template 메서드 패턴 템플릿 메서드 패턴은 알고리즘의 구조를 정의하는 추상 클래스와 실제 구현을 수행하는 하위 클래스로 구성된 디자인 패턴입니다. 추상 클래스에서는 알고리즘의 골격을 정의하며, 하위 클래스에서는 그 골격에 따라 실제 구현을 제공합니다. 이렇게 하여 알고리즘의 구조를 변경하지 않고 일부 구현을 변경할 수 있습니다. 예제 코드 abstract class Beverage { // 템플릿 메소드 final void prepareRecipe() { boilWater(); brew(); pourInCup(); addCondiments(); } abstract void brew(); // 추상 메소드 abstract void addCondiments(); // 추상 메소드 void boilWa..
· DEV/Java
다운 캐스팅(DownCasting) 다운 캐스팅(Downcasting)은 슈퍼클래스(부모 클래스) 타입의 참조를 서브클래스(자식 클래스) 타입으로 변환하는 과정을 의미합니다. 다운 캐스팅의 사용 목적은 다음과 같습니다. 다형성의 활용 다형성을 통해 슈퍼클래스 타입의 참조 변수로 서브클래스의 인스턴스를 참조할 수 있습니다. 이때, 슈퍼클래스에 없는 서브클래스의 메서드나 필드를 사용하고자 할 때 다운 캐스팅을 사용하여 서브클래스 타입으로 변환한 뒤 접근할 수 있습니다. 메모리 사용 최적화 슈퍼클래스 타입의 참조 변수로 여러 서브클래스의 인스턴스를 참조할 수 있으므로, 메모리 사용을 줄이고 코드의 유지 보수성을 높일 수 있습니다. Java에서 다운 캐스팅의 예시 class Animal { public void..
· DEV/Java
가상 함수 - 🐥 카카오 테크 캠퍼스 정의 가상 함수(Virtual Function)는 객체 지향 프로그래밍에서 상위 클래스의 메서드를 하위 클래스에서 Overriding(재정의)할 수 있는 메서드입니다. 다형성(Polymorphism)을 지원하기 위해 사용되며, 가상 함수를 사용하면 상위 클래스 타입의 참조 변수로 하위 클래스의 메서드를 호출할 수 있습니다. 가상 함수의 핵심은 동적 바인딩입니다. 동적 바인딩은 프로그램 실행 중에 실제 호출할 함수를 결정하는 프로세스를 말합니다. 핵심 다형성을 지원한다. 상위 클래스의 메서드를 하위 클래스에서 재정의할 수 있다. 상위 클래스 타입의 참조 변수로 하위 클래스의 메서드를 호출할 수 있다 abstract class Animal { abstract void m..
· DEV/Java
Is-A와 HAS-A 또는 Inheritance와 Composition 상속(Inheritance), Is-A 관계 상속은 한 클래스가 다른 클래스의 속성과 메소드를 물려받는 것입니다. 상속을 사용하면 코드의 재사용성을 높일 수 있습니다. 자식 클래스는 부모 클래스의 속성과 메소드를 물려받고, 필요한 경우 추가적인 속성과 메소드를 정의할 수 있습니다. Is-A 관계는 한 객체가 다른 객체의 특수한 형태로 볼 수 있는 관계를 의미합니다. Composition (구성, Has-A 관계) Composition은 한 클래스가 다른 클래스의 객체를 포함하는 방식으로 클래스 간의 관계를 나타냅니다. 이 관계를 Has-A 관계라고도 합니다. Composition을 사용하면 클래스 간의 결합도를 낮추고, 유지 보수성을..
· DEV/Java
다형성(Polymorphism) 다형성은 여러 가지 형태를 가질 수 있는 능력을 말합니다. 프로그래밍에서 다형성은 한 인터페이스나 클래스를 사용하여 여러 개의 다른 타입의 객체를 참조하거나 처리할 수 있는 능력을 의미합니다. 다형성을 사용해야 하는 이유는 다음과 같습니다: 코드의 재사용: 다형성을 사용하면 기존 클래스를 수정하지 않고 새로운 클래스를 추가하여 코드를 재사용할 수 있습니다. 유연성: 다형성을 사용하면 한 코드 블록에서 여러 타입의 객체를 처리할 수 있습니다 확장성: 다형성을 사용하면 새로운 타입의 객체를 추가할 때 기존 코드를 수정하지 않고도 프로그램을 확장할 수 있습니다. Example. Customer class Customer { protected int id; protected St..
· DEV/Java
Overriding - 🐥 카카오 테크 캠퍼스 오버라이딩은 상위 클래스에 정의된 메서드의 구현 내용이 하위 클래스에서 구현할 내용과 맞지 않는 경우 하위 클래스에서 동일한 이름의 메서드를 재정의 할 수 있다. 하위 클래스에서 상위 클래스의 메서드와 동일한 함수 시그니처를 가진 메서드를 정의한다. 기능을 변경하거나 확장할 때 사용한다. @Override 어노테이션을 사용해 명시적으로 오버라이딩임을 표시할 수 있다. 예시 class Animal { void makeSound() { System.out.println("The animal makes a sound"); } } class Dog extends Animal { @Override void makeSound() { System.out.println("..
· DEV/Java
상속 - 🐥 카카오 테크 캠퍼스 새로운 클래스를 정의 할 때 이미 구현된 클래스를 상속(inheritance) 받아 속성이나 기능을 확장하여 클래스를 구현한다 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할 때 클래스를 상속한다 상속의 표현 방법 : Extends class B extends A {} 상속하는 클래스 : 상위 클래스, 부모 클래스, super class 상속받는 클래스 : 하위 클래스, 자식 클래스, derived class, sub class 상속을 구현하는 경우 자바는 단일 상속만을 지원하며, 상위 클래스에 일반적인 개념과 기능을, 하위 클래스에는 더 구체적인 개념과 기능을 구현한다 Example : Customer && VIP Customer Customer :..
· DEV/Java
형변환(업캐스팅) 형변환 (업캐스팅) 은 자바에서 하위 클래스의 객체를 상위 클래스 타입으로 변환하는 과정입니다. 업캐스팅을 사용하면 상위 클래스 타입의 참조 변수를 통해 하위 클래스 객체에 접근할 수 있으며, 이를 통해 다형성을 구현할 수 있습니다. Example. 명시적 형변환 class Animal { void makeSound() { System.out.println("The animal makes a sound"); } } class Dog extends Animal { @Override void makeSound() { System.out.println("The dog barks"); } } class Cat extends Animal { @Override public void makeSoun..
berom
'개발/OOP' 태그의 글 목록 (2 Page)