728x90
SMALL
- 123을 10진법으로 표현
123 % 10 -= 3
12 % 10 = 2
1 % 10 = 1
- 123을 2진법으로 표현
123%2 = 61, 1
61%2 = 30, 1
30 % 2 = 15,0
15% 2 = 7,1
7 %2 = 3,1
3 %2 = 1,1
1%2 = 0,1
---------------------
1111011
- 0.45 - 10진수
0.45 * 10 = 정수 : 4, 소수 : 0.5
0.5 * 10 = 정수 : 5, 소수 : 0
- 0.45 - 2진수
0.45 * 2 - 0.9 (0)
0.9 * 2 - 1.8 (1)
0.8 * 2 - 1.6 (1)
0.6 * 2 - 1.2 (1)
0.2 * 2 - 0.4 (0)
0.4 * 2 - 0.8 (0)
0.8 * 2 - 1.6 (1)
..
----------------
0111001...
데이터의 오염만 방지하는 것이 아니라 모듈의 변경이 발생할 때 같은 로직만 변경이 발생해야 하기때문에.
메서드부터 비워놓고 작성해놓고 설계를 짜야한다
객체가 알고 있는 정보가 무엇인가
객체가 어떤 행동을 할 수 있나?
객체 생성, 계산 : 할수있는것 (메서드호출)
객체의 행동을 제어하는것
- 상속
코드재사용을 위해 상속을 하지않음
계층적인 구조를 위해 하는것
코드 재사용을 목적으로 사용하면 발생할 수 있는 문제
1.불필요한 인터페이스 상속
2.메서드 오버라이딩
->원래 노출된 의도랑 동작이 변경됨
3.부모 클래스와 코드를 공유하기 때문에 변경에 의한 사이드이펙트가 자식에게 전파
4.부모클래스가 노출 -> 캡슐화
코드 재사용을 하기 위해
-상속보다는 합성(car예제)을 사용
-합성관계 ->동적으로 객체를 결정할 수 있다 (실행시간)
그렇다면 상속이 필요한 것은?
타입이 계층적으로 표현될 때
ex)메가커피의 상품
-커피
-스무디
-케이크
- 클래스 선언
접근지정자 class 클래스 이름 {
접근지정자 타입 변수이름;
메소드()
}
- 접근지정자 : 언어레벨에서 캡슐화 (스코프 제한)
-private : 객체내부에서만 접근
-protected : 패키지 내부에서만 접근 가능
-public : 모든 패키지 및 클래스에서 접근 가능
- 한정자(modifier)
-static : 클래스에 소속시킨다.
ABC.method();
-final : 확장/변경 불가능
1.클래스 : 이 클래스를 상속하지말 것
2. 변수 : 상수
-abstract : 추상클래스/메서드
- 생성방법
final Object obj = new Object; - 메소드
-이름
-시그니처
-메소드이름
-파라미터 목록
-바디 - 가변인자
method(타입.. 파라미터) ;
728x90
LIST
'JAVA > Java' 카테고리의 다른 글
20201103_27 A와 B 돈인출, review (0) | 2020.11.03 |
---|---|
20201103_27 JVM (0) | 2020.11.03 |
20201029_24 자바 해시 (0) | 2020.10.29 |
20201028_23 자바리뷰 (0) | 2020.10.28 |
20201020_19 2차원배열 (0) | 2020.10.20 |
댓글