DEV/Java

· DEV/Java
프레임워크와 라이브러리의 차이 프레임워크와 라이브러리의 차이 프레임워크는 개발자가 작성하는 애플리케이션의 구조를 정의하고, 필요한 기능을 제공한다. 라이브러리는 개발자가 작성하는 애플리케이션에서 필요한 기능을 제공하는데 중점을 둔다. 프레임워크의 정의 프레임워크는 소프트웨어의 구조를 정의하고, 애플리케이션 개발에 필요한 여러 기능을 제공하는 소프트웨어 구조이다. 개발자는 프레임워크 안에서 코드를 작성하고, 프레임워크가 제공하는 라이브러리 및 기능을 사용하여 애플리케이션을 개발한다. 대표적인 예시로는 Spring Framework가 있다. 라이브러리의 정의 라이브러리는 개발자가 원하는 기능을 재사용할 수 있게끔 제작된 소프트웨어의 집합이다. 라이브러리를 사용하는 개발자는 필요한 기능을 불러와서 사용하며, ..
· 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
Super 키워드 super 키워드는 하위 클래스에서 상위 클래스에 대한 참조 값을 가지며, 상위 클래스의 생성자, 메서드, 멤버 변수에 접근할 때 사용합니다. super() 생성자 호출 super()는 상위 클래스의 기본 생성자를 호출합니다. 하위 클래스의 생성자에서 명시적으로 상위 클래스의 생성자를 호출하지 않으면 자동으로 super()가 호출됩니다 (이때 반드시 상위 클래스의 기본 생성자가 존재해야 함). 상위 클래스의 기본 생성자가 없는 경우 (다른 생성자가 있는 경우) 하위 클래스에서는 생성자에서 super를 이용하여 명시적으로 상위 클래스의 생성자를 호출해야 합니다. 상위 클래스의 메서드와 멤버 변수 접근 super는 생성된 상위 클래스 인스턴스의 참조 값을 가지므로, super를 이용하여 상..
· 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
'DEV/Java' 카테고리의 글 목록 (7 Page)