Cute Happy Ghost
본문 바로가기
JAVA/Java

20201030_25 이진법, 상속, 클래스 등

by JENN_tech7 2020. 10. 30.
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

댓글