☕ JAVA

· ☕ JAVA
final 클래스final 클래스는 다른 클래스가 그것을 상속받을 수 없게 하는 클래스이다.final 키워드를 클래스 선언에 추가함으로써, 해당 클래스는 최종적이며 변경할 수 없다는 것을 의미한다.fianl 클래스의 필요성불변성 보장final 클래스를 사용하면 클래스의 불변성을 보장할 수 있다.이는 클래스가 일단 생성되면 그 상태가 변경되지 않도록 함으로써, 안정성과 보안을 향상시킨다.상속 방지final 클래스는 상속을 받을 수 없다.이는 특정 클래스의 설계와 구현이 그대로 유지되어야 할 때 중요하다.예를 들어, 특정 클래스의 기능이나 로직이 변경되지 않도록 유지하고 싶을 때 final을 사용한다.불변 클래스 생성final 클래스는 불변 객체를 만드는 데 유용하다.불변 객체는 생성 후 그 상태가 변경되지..
· ☕ JAVA
템플릿 메서드 패턴(Template Method Pattern)템플릿 메서드 패턴은 디자인 패턴 중 하나로, 알고리즘의 구조를 메서드에 정의하고, 알고리즘의 일부 단계를 서브 클래스에서 구현하도록 하여 알고리즘의 일부 변경을 허용하는 패턴이다.이러한 패턴은 특히 공통의 알고리즘 과정이 있지만, 그 과정 중 일부가 클래스마다 다를 때 유용하다.추상 클래스를 사용해 템플릿 메서드를 정의하고, 구체적인 작업은 서브 클래스에서 오버라이드하여 구현한다. 템플릿 메서드 패턴의 구조추상 클래스(abstract class)알고리즘의 단계를 정의하는 템플릿 메서드와 알고리즘의 일부를 구현하는 하나 이상의 추상 메서드로 구성된다.구체 클래스(concrete class)추상 클래스를 상속받아 추상 메서드를 구현한다. 이를 ..
· ☕ JAVA
추상 클래스(abstract class)미완성 설계도미완성 메서드를 가지고 있는 클래스abstract class Player { // 추상 클래스 abstract void play(int pos); // 추상 메서드 abstract void stop(); // 추상 메서드}다른 클래스 작성에 도움을 주기 위한 것. 인스턴스 생성 불가!미완성 설계도니까 제품 생성 불가!상속을 통해 추상 메서드를 완성해야 인스턴스 생성이 가능하다.class AudioPlayer extends Player { void play(int pos) { .. } // 추상 메서드를 구현 void stop() { .. }}AudioPlayer ap = new AudioPlayer(..
· ☕ JAVA
매개 변수의 다형성다형성의 장점다형적 매개 변수하나의 배열로 여러 종류 객체 다루기 참조형 매개변수는 메서드 호출 시, 자신과 같은 타입 또는 자손 타입의 인스턴스를 넘겨줄 수 있다.  하나의 배열로 여러 종류의 객체 다루기조상 타입의 배열에 자손들의 객체를 담을 수 있다.보통 하나의 배열에는 같은 타입, 종류만 저장되는데 다형성 이용하면 여러 종류의 객체를 저장할 수 있다.예시 1  예시 2class Buyer { int money = 1000; int bonusPoint = 0; Product[] cart = new Product[10]; int i = 0; void buy(Product p) { money -= t.price; bonusPoint += t.bonusPoin..
· ☕ JAVA
참조 변수의 형 변환참조 변수의 형 변환? 사용할 수 있는 멤버의 갯수를 조절하는 것리모콘을 바꾸는 것! 주소값, 객체가 바뀌는 것이 아니다.조상, 자손 관계의 참조 변수는 서로 형 변환이 가능하다.멤버 갯수 감소 → 안전 (형 변환 생략 가능)멤버 갯수 증가 → 안전X (형 변환 생략 불가능) 예시 1class Car { String color; int door; void drive() {..} void stop() {..}}class FireEngine extends Car { void water() {..}} 예시 2  instanceof 연산자참조 변수의 형 변환 가능 여부 확인에 사용. 가능하면 true를 반환반드시 instanceof로 확인 먼저한 뒤, 형 변환 필요void doWor..
· ☕ JAVA
다형성(polymorphism)다형성? 여러가지 형태를 가질 수 있는 능력조상 타입 참조 변수로 자손 타입 객체를 다루는 것Tv t = new SmartTv(); // 타입 불일치? OK!다형성의 장점다형적 매개변수참조형 매개변수는 메서드 호출 시, 자신과 같은 타입 또는 자손 타입의 인스턴스를 넘겨줄 수 있다.하나의 배열로 여러 종류의 객체 다루기조상 타입의 배열에 자손들의 객체를 담을 수 있다.필드는 타입을 따른다.자식에 오버라이드 되었어도 타입이 부모면 부모의 값을 따른다.메서드는 오버라이드되면 자식을 따른다.super.getA(); 으로 super를 쓰면 부모 메서드를 호출한다. 객체와 참조 변수의 타입이 일치, 불일치할 때의 차이참조 변수로 사용할 수 있는 멤버의 개수가 달라진다.아래 두 클래스..
별이⭐
'☕ JAVA' 카테고리의 글 목록