1. 개념 1) 업캐스팅 : 서브클래스(하위클래스)의 인스턴스를 슈퍼클래스(상위클래스)의 참조로 형변환하는 것. Parent pobj = new Child(); ✔ 서브클래스에서 정의된 메서드를 사용한다. 단, 슈퍼클래스와 동일한 메서드만 사용가능하다. 2) 다운캐스팅 : 슈퍼클래스(상위클래스)의 참조를 서브클래스(하위클래스)의 참조로 형변환하는 것. Child cobj = (Child) Parent; 2. 사용이유 - 상속관계에 있을 때, 업캐스팅은 코드의 유연성과 다형성을 향상시킨다. - 다운캐스팅은 업캐스팅 했다가 다시 원래의 서브클래스 타입으로 되돌릴 때 사용한다. 3. 예시 코드 // Shape 클래스를 정의합니다. abstract class Shape { public abstract void ..
프로그래밍 언어
1. StringBuilder 란? StringBuilder는 Java에서 변경 가능한 문자열을 다루기 위해 사용되는 클래스다. 2. 사용 이유 ① 가변성 (Mutable) : String 객체는 불변(immutable)이기 때문에 문자열을 조작할 때마다 새로운 String 객체가 생성된다. 반면, StringBuilder는 가변(mutable)하여 기존 객체를 재사용하면서 문자열을 변경할 수 있다. 이로 인해 반복적인 문자열 연산에서 StringBuilder가 String에 비해 효율적이다. ② 성능 향상 : 문자열 연산이 많은 경우, StringBuilder를 사용하면 메모리 사용을 줄이고 성능을 향상시킬 수 있다. 예를 들어, 반복문 내에서 문자열을 결합하는 경우 StringBuilder를 사용하는..

1. 학습 주제 : 접근제어자, 추상클래스, 상속, 오버라이딩, 인터페이스 이해하기 ✔️접근제어자 - private : 해당 클래스 내에서만 접근 가능 - public : 모든 클래스에서 접근 가능 - default : (아무것도 적지 않았을 때) 같은 패키지 내에서만 접근 가능 - protected : 같은 패키지 내에서, 다른 패키지인 경우 자식 클래스에서 접근 가능 ( 상속 개념을 알아야함 ) ✔️추상클래스 - 추상 클래스는 하나 이상의 추상 메서드를 포함하거나 단순히 상속을 위해 추상적으로 선언될 수 있는 클래스다. - 클래스 선언에 'abstract' 키워드를 사용하여 추상 클래스를 정의한다. - 추상 클래스는 직접 인스턴스화 될 수 없다. ( Abstract abs = new Abstract ..

1. 학습 주제: 객체지향적 사고로 JAVA 프로그래밍하기 ✔️역할을 기준으로 객체를 분류한다. ✔️ 객체는 단일책임원칙을 지켜야한다. ✔️ 데이터 정보를 외부에서 다른 객체가 획득하지 못하도록 한다. (외부 객체가 획득하게 되면 변화에 민감해짐. 유지보수 비용 높아짐) ✔️ 객체가 가지고 있는 메소드는 외부 객체가 이용할 기능을 제공한다. (재사용이 높을 수록 메소드를 정의할 필요성이 높아짐) ✔️ 메소드를 언제 쓸지 모르고 객체에 메소드를 많이 정의하는 경우, 객체가 무거워진다. ✔️ 메소드를 전부 정의할 수는 없음. 설계단계에서 적당한 선을 고민해봐야함. ✔️클래스는 최소한으로 설계하되, 최대한 재사용하도록 한다. 2. 과제 1) 구매횟수에 따라 누적 포인트 점수 계산하기. - 3회 미만 : 구매횟..