반응형
더보기
복습
- 클래스 : 행동과 data 의 집합
- 필드 > 지속적으로 사용할 경우
- 데이터의 보호, 캡슐화 ... 허용되는 범위 내에서만 사용할 수 있는 권한 부여 = private
- 인스턴스
- 객체당 하나씩 생기는 공간 > 객체 생성 시 사용 가능
- static : 모든 객체가 공유
- 스태틱은 생성자 불가
- 인스턴스
- 데이터의 보호, 캡슐화 ... 허용되는 범위 내에서만 사용할 수 있는 권한 부여 = private
- 생성자
- 기본생성자 = 객체 등록
- 메소드 > 내/외부를 연결시키는 목적
- 필드 > 지속적으로 사용할 경우
final : 마지막, 바꿀 수 없다.. => 상수화
- field :
- MAX : 상수 = 모든 글자를 대문자로 쓸 때
- final int MAX = 100; ( 값 변경 불가이므로, 선언과 동시에 초기화 필수)
- 상수는 언제나 같은 값, 바꾸는 값이므로 static 을 붙여준다. > final static 상수
- class
- final class ≠ is a 관계 (상속) 을 사용하지 않는다
- has a 관계만 가능
- method
- 오버라이드 : (재정의) 를 할 수 없다
-- day04.Test.java / 싱글톤
더보기
디자인 패턴 하루에 두개씩 정리 + 예제 짜서 제출
... 스터디로 짜고 코딩은 각자
클래스 관계
- is - A 관계 ( 상속 ) : ~는 ~ 이다.
- 하위-상위 클래스 (super class)
- 상속 = 확장성 + 재사용성 극대화
- is like a (관계) : ~는 ~와 같다. ≠
- 명확성을 위해.. 자바는 객체 사이의 다중상속이 불가하다
- has - A 관계 ( 포함 오브젝트 ) : ~는 ~ 를 가지고 있다.
- data 클래스 : 독립된 클래스 // 필요하면 가져다 쓸 수 있는
- data 관리 클래스 : 여러개의 data 클래스를 가져다 쓰는 클래스
package day04;
class A { // data 클래스 : 항상 독립적으로 만들어라
public A() {
System.out.println("A");
}
public void dispA() {
System.out.println("Disp:A");
}
}
class B {
public B() {
System.out.println("B");
}
public void dispB() {
System.out.println("Disp:B");
}
}
public class IsA {
// 접근할 수 있도록 만든것. 객체 생성 x
A aa; //has a 관계
B bb;
public IsA() {
aa = new A();
bb = new B();
}
public void dispA() {
aa.dispA();
}
public static void main(String[] args) {
IsA isa = new IsA();
// isa.dispA(); > 바로 접근 불가, 중간 매개체 필요
isa.aa.dispA();
isa.dispA();
}
}
더보기
score // name // subject // studentmany .
상속
- 자바는 100% 상속 구조로 되어 있다
- Object 클래스가 최상위 클래스
- 확장성 재사용성 => is a 관계
- 단일상속이 원칙 ( 복잡성 피하기 위해)
- 다중상속은 객체끼리는 허용 불가,. 인터페이스는 다중상속을 허용
- 상속해주는 클래스 : Super class, 부모 클래스
- 상속 받는 클래스 : Sub class , 자식 클래스
- super 클래스는 항상 sub 클래스의 공통된 사항을 멤버로 제공한다.
- 상속을 받는다 = super 클래스의 모든 것을 내것처럼 사용할 수 있다.
- super class 의 private 멤버는 sub 클래스에서 직접적으로 접근할 수 없다. // 상속받았어도 안됨
super() :
- 생성자의 첫 라인에는 항상 super()호출이 존재함
- 현재 객체가 상속받고 있는 생성자르 호출
- 명시적으로 사용한다 = 상위클래스의 오버로딩된 생성자를 고른다.. pick
오버라이딩 Override = 다형성 .. 동적 바인딩
- 부모의 메소드 재정의 @
- 부모의 제공 기능을 가공 ( 추가 삭제 변경 )
- 부모를 부르고 싶으면 => super 호출 이용 .
추상클래스 : 확장성
- 구체화가 되지 않는 클래스
- 객체를 생성할 수 없다.
- 기본적으로 상속을 목적으로 사용
- super class 로 사용
- 추상 메소드를 하나 이상 가지고 있는 클래스
- 추상 메소드란?
- 바디가 없는 메소드 => 이름만 가지고 있는 메소드
- 추상 메소드는 오버라이딩 (강제성을 부여.. 내용(바디) 알아서 꼭 채워라?)
- 추상클래스를 상속 받으면 그것도 추상클래스..
- 추상 메소드를 오버라이딩 하면 객체를 만들 수 있다.?
- 추상 메소드란?
동적 바인딩
: 부모의 래퍼런스로 자식을 접근하는 방식
> 다형성, 하나의 이름으로 여러 방식을 실행시킬 수 있다.
정적 바인딩
: 내가 나를 접근하는 방식
반응형
'강의정리들 > [2023] FullStack' 카테고리의 다른 글
230101_Wed_1 (0) | 2023.01.11 |
---|---|
230110_Tue (0) | 2023.01.10 |
230106_Fri (0) | 2023.01.06 |
230105_Thu (0) | 2023.01.05 |
230104_Wed (0) | 2023.01.04 |