주말에 해야할것 늑대와소녀 SD뒷모습 캐릭터 그리기(자잘한 미사일 종류), 인강(인강과제도 포함), 미니프로젝트 블로그 정리, 자료구조 복습(스택,큐,리스트), 익명클래스,중첩클래스 블로그정리 디자인 패턴에서 템플릿 메서드 패턴 복습
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 : 다를 클래스를 이용하는 클래스
DAO : Data Access Object : 중복되는 코드를 분리한다. (findByName, findByNo, indexOf등…) 다음주 월요일에 배울 예정
디자인 패턴 - 커맨드 패턴
유지보수란 말이 무한반복해서 나오는 걸 보면 유지보수가 진짜 중요한가보다
간결하게 만드는거 기대된다
HashMap이용하기
HashMap을 바로 레퍼런스로 써도 되지만 레퍼런스는 가능한 많은 정보를 담을 수 있는 인터페이스로 선언한다.