You are using an outdated browser. Please upgrade your browser to improve your experience.

2020/09/11 TIL

주말에 해야할것 늑대와소녀 SD뒷모습 캐릭터 그리기(자잘한 미사일 종류), 인강(인강과제도 포함), 미니프로젝트 블로그 정리, 자료구조 복습(스택,큐,리스트), 익명클래스,중첩클래스 블로그정리 디자인 패턴에서 템플릿 메서드 패턴 복습

중첩클래스(Nested Class) 이어서

oop - ex11 - e부터

커피를너무 많이 마셨나봐요 심장이 막 두근대고 잠들수가없어요~~~~


인터페이스는 규칙이기때문에 Static으로 선언하지 않아도 스태틱 멤버에서 사용할 수 있다.

익명클래스의 세미콜론이 없으면 익명클래스가 아니라 객체를 생성하는거라고????

    // 외부에서 파라미터 값을 한번 받고 조회용으로 쓰겠다는 뜻.
    // 파라미터 값에는 final을 붙이는게 고급 코딩이다.
    public A(final String name) {
      this.name = name;
      //name = "oho"; //안됌!
    }

Exam0440 익명클래스를 파라미터에 바로 집어넣기 아주 황당무계한 코드처럼 보이지만 이런식으로 활용된다.

  public static void main(String[] args) {
    Exam0440 r = new Exam0440();
    r.m1(new A() {
      @Override
      public void print() {
        System.out.println("안녕!");
      }
    });

어려우니까 다시 여러번 치면서 복습하자

파일 입출력을 배운 뒤에 복습하면 이해가 더 쉬워진다. 람다 문법도 배워야 한다.


상수를 문자열로 바로 쓰는건 바람직하지 않다. 오타가 나도 발견할 수 없기 때문이다. 그래서 카테고리 필드에 상수필드를 중첩으로 만들거나 카테고리를 전부 분리해도 되지만, 보통 중첩클래스를 많이 쓴다.(google android R.java 소스파일 확인해보기)

// 카테고리 값을 지정할 때 OGNL 표기법으로 지정한다.
// OGNL(Object Graph Navigation Language)?
// => 자바에서 객체 안에 있는 필드를 가리킬 때 점(.)을 이용하여 표기하는 방법
// => 객체 안에 객체가 계층적으로 들어 있을 때 파일 경로를 가리키듯
// 점(.)을 이용하여 가리킬 수 있다.
//
// 예) 객체.필드.필드.필드 = 100;
//
    Product p = new Product();
    p.category = Category.appliance.TV;
    p.name = "울트라비전 뷰";
    p.price = 2000000;

​ //리턴타입은 인스턴스 주소거나 리터럴뿐이다. 클래스가 아니다!

백터를 상속받은 Stack : Vector가 구현한 Iterator를 쓰는데, 여기서 iterator는 FIFO형식이다.

Stack의 완전한 기능을 쓰고싶다면 Deque클래스를 쓰는게 좋다.

프로그래밍은 기존 코드를 손대지 않고 기능을 추가하는게 바람직하다.

그래서 등장한 설계기법 : 메서드를 객체화( 캡슐화)시킨다. => 메서드를 인스턴스가 아니라 class로 정의

기존 Handler 클래스들을 전부 조각내서 각각의 클래스로 분리시킨다.

Client : 다를 클래스를 이용하는 클래스


HashMap이용하기

HashMap을 바로 레퍼런스로 써도 되지만 레퍼런스는 가능한 많은 정보를 담을 수 있는 인터페이스로 선언한다.