본문 바로가기
728x90

전체 글247

[프로그래머스] 실패율(Java) 제출 코드 import java.util.Arrays; import java.util.Comparator; class Solution { public int[] solution(int N, int[] stages) { int[] answer = new int[N]; double[][] fail = new double[N][2]; int len = stages.length; for(int i=1;i 2023. 10. 17.
포함관계와 추상화 구현 순서 포함관계 클래스 A, B, C, D를 클래스 N에 포함시키고자 할 때 클래스 N에 클래스 A의 변수 a, B의 변수 b, ... 를 선언한다. 클래스 N의 생성자를 선언하면서 매개변수를 (A a, B b, C c, D d)으로 받고 this.a = a; this.b = b; 로 각각 저장한다. 이후 클래스 N에서 변수 a, b, c, d의 메서드를 사용한다. ABCD의 공통된 부분으로 추상 클래스 M을 생성(추상화) ABCD의 공통된 함수를 추상 메서드 e로 만든다. 각 A, B, C, D가 M을 상속받고 각각 클래스 내에서 추상 메서드 e를 재정의한다. 클래스 N에 a, b, c, d 대신 추상 클래스 M의 변수 m을 선언한다. 클래스 N의 생성자의 매개변수로 (M m)을 받고 this.m = m;으로.. 2023. 10. 16.
추상 클래스와 인터페이스 비교 추상 클래스와 인터페이스의 공통점: 가지고 있는 추상 메서드를 구현하도록 강제 인스턴스화 불가능 추상 클래스의 목적: 해당 추상 클래스를 상속받아 기능을 이용하고 확장하는 것. 관련성이 높은 클래스 간에 코드를 공유하고 싶은 경우 public 이외의 접근제어자가 필요한 경우 일반 메서드가 존재할 수 있음 (추상 메서드 1개 이상) 인터페이스의 목적: 함수 구현을 강제하여 구현 객체의 같은 동작을 보장. 클래스와 별도로 같은 기능이 필요할 때 사용 일반 변수를 가질 수 없음 (static final이어야 함) 다중 상속 가능 + 추상 클래스 = 구체적인 여러 클래스들을 일반화된 개념으로 묶은 것 인터페이스 = 여러 클래스들을 행위적 일관성으로 묶은 것 2023. 10. 16.
[231016] 추상클래스와 인터페이스, 다형성 구현 자바 문법 종합반 3주차 수강 인터페이스 개념이 조금 이해하기 힘들었다. 추상 클래스? 부모 클래스? 와 비슷한 개념같고 헷갈려서 정리 추상 클래스와 인터페이스의 공통점: 가지고 있는 추상 메서드를 구현하도록 강제 인스턴스화 불가능 추상 클래스의 목적: 해당 추상 클래스를 상속받아 기능을 이용하고 확장하는 것. 관련성이 높은 클래스 간에 코드를 공유하고 싶은 경우 public 이외의 접근제어자가 필요한 경우 일반 메서드가 존재할 수 있음 (추상 메서드 1개 이상) 인터페이스의 목적: 함수 구현을 강제하여 구현 객체의 같은 동작을 보장. 클래스와 별도로 같은 기능이 필요할 때 사용 일반 변수를 가질 수 없음 (static final이어야 함) 다중 상속 가능 3주차 숙제 중 포함관계 & 상속관계 구현 클래.. 2023. 10. 16.
Chapter 8. 상속 클래스 간의 관계와 상속 부모 클래스의 필드와 메서드를 자식 클래스에게 물려줌 코드의 중복 제거, 재사용성 증가로 생산성과 유지보수성에 유리해짐 상속 public class 자식클래스 extends 부모클래스 { } 클래스간의 관계 상속관계: is - a ("~은 ~이다.") 포함관계: has - a ("~은 ~을 가지고 있다.") Java는 다중상속을 허용하지 않음 final 클래스: final class 클래스명으로 선언 더 이상 상속할 수 없음 final 메서드: final 반환타입 메서드명()으로 선언 더 이상 오버라이딩 할 수 없음 Object 클래스: Java 내 모든 클래스들의 최상위 부모 클래스 모든 클래스는 Object의 메서드를 사용할 수 있음 부모 클래스가 없는 자식 클래스는 컴파일러.. 2023. 10. 16.
Chapter 7. 클래스 객체지향 프로그래밍 객체: 세상에 존재하는 물체. 식별이 가능한 것. 객체: 속성(필드) + 행위(메서드) 객체 모델링: 현실 세계에 있는 객체를 소프트웨어의 객체로 설계하는 것 객체 간 상호작용: 메서드를 통해 이루어짐 객체 간 관계 사용 관계 포함 관계 상속 관계 객체지향 프로그래밍의 특징 캡슐화: 필드와 메서드를 하나로 묶어 객체로 만든 후 실제 내부 구현은 외부에서 알 수 없게 감추는 것 캡슐화된 객체의 필드와 메서드를 노출 시킬 지 감출 지 결정하기 위해 접근 제어자 사용 상속: 부모 객체의 필드와 메서드를 자식 객체에 물려주는 것 객체들을 상속 관계로 묶음으로써 객체 간의 구조를 파악하기 쉬워짐 부모 객체의 필드와 메서드를 수정하면 자식 객체에 모두 반영되어 일관성을 유지하기 좋음 코드의 중복.. 2023. 10. 16.