Featured image of post Do it 자바프로그래밍 입문

Do it 자바프로그래밍 입문

[!INFO] 책 정보

  • 저자: 저자/박은종
  • 번역:
  • 출판사: 출판사/이지스퍼블리싱
  • 발행일: 2018-08-06
  • origin_title: -
  • 나의 평점:
  • 완독일: 2019-12-14 01:29:02

교재 소스 https://github.com/easyspubjava/JAVA_LAB

10장 인터페이스

  • 인터페이스에 선언한 메서드는 모두 구현 코드가 없은 추상 메서드이다
  • 이들 메서드는 Public abstract 예약어를 명시적ㅇ로 쓰지 않아도 컴파일 과정에서 자동으로 추상 메서드로 변환됨
  • 변수또한 컴파일 과정에서 값이 변하지 않는 상수로 자동 변환됨 (Public static final) 예약어를 쓰지 않아도 무조건 상수로 인식
  • implements  :클래스에서 인터페이스를 구현한다 라고 정의
  • extends : 상속받는다
  • 왜 쓰나?
    • 클라이언트 프로그램에 어떤 메소드를 제공하는지 미리알려주는 명세 또는 약속의 역할을 한다
  • 자바 8부터는 인터페이스에서 디폴트(default) 메서드, 정적(static) 메서드기능을 제공한다
    • default 키워드로 구현
    • 하위 클래스에서 오버라이딩 해서 사용가능
  • 인터페이스는 다중 인터페이스를  구현(implements) 가능하다 (상속은 안됨)
  • 인터페이스간에 상속도 가능하다
  • 인터페이스,상속 동시도 가능
    • public class BookShelf extends Shelf implements Queue{…}

11장 기본 클래스

  • Object
    • toString()  오버라이딩 하여 재 사용 가능
  • StringBuffer , StringBuilder
    • 프로그램에서 스레드를 사용하지 않는다면 StringBuilder가 속도가 더 빠름
  • Warpper
    • Integer(int value){}, Integer(String s){}
  • Class 클래스 : 모르는 클래스의 정보를 사용할 경우에 우리가 클래스 정보를 찾기위해 사용
    • 리플렉션 프로그래밍에서 사용하는 방법
    • Class cls= obj.getClass() ;  cls.getConstructors();cls.getFields();cls.getMethods();

12장  컬렉션

  • 제네릭 프로그래밍 : 참조 자료형을 사용할 수 있도록 프로그래밍하는 방법
    • <> 문자를 이용한 일반형식 사용 가능:
      • public class GenericClass{ private T aaa;  void setMethod(T bbb){};}…
  • Collection 인터페이스
    • List:순서가 있는 자료 관리, 중복 허용
      • ArrayList
      • Vector : 동기화에 사용됨(호출시마다, Lock,Release가 실행되어 속도느림)
      • LinkedList
      • Stack
      • Queue
    • Set : 순서 없음, 중복 불허
      • HashSet
      • TreeSet : 출력이 정렬되어짐
    • 중요 메서드
      • add()
      • clear()
      • remove()
      • size
      • interator : 반복자?
        • Iterator ir=memberArraryList.iterator();
        • while(ir.hasNext()){ Member mb=ir.next();}
  • Map 인터페이스  :  key,value 의 쌍으로 관리하는 자료형
    • Hashtable :동기화에 사용(Vector 처럼) 속도 느림
      • Properties
    • HashMap
    • TreeMap : 키값으로 자료 정렬
      • key 값을 정렬해야 함으로 comparable,comparator 인터페스를 구현해 줘야한다. Integer 클래스는 이미 구현 되어 있다

      • Iterator ir=treemap.keySet().iterator();

      • while(ir.hasNext()){ int key=ir.next()…}

- 중요메서드
    - put(key,value)
    - get(key)
    - isEmpty()
    - contaionsKey(key)
    - containosValue(value)
    - keyset() : key 집합을 Set으로 반환
    - values(): values를 collection으로 반환(중복 무관)
    - remove(key)
    - remove(key,value)

13장 내부 클래스, 람다식, 스트림

  • 내부 클래스

    • 익명 내부 클래스
  • 람다식 : 자바8부터 지원

    • (int x,int y) ->{return x+y;}

    • (x,y) ->{ if (x>=y) return x; else return y;}

    • (x,y) -> x>=y ? x : y

  • 스트림

    • int[] arr={1,2,3,4,5,6};
    • Arrays.stream(arr).forEach(n-> System.out.println(n));
    • sList.stream().filter(s->s.length() >=5).forEach(s->S..println(s)));
    • cList.stream().map(c->c.getName()).forEach(s->..println(s));
    • forEach()
    • count()
    • sum()
    • reduce() :
    • 자료의 대상과 관계없이 동일한 연산을 수행한다
    • 한 번 생성하고 사용한 스트림은 재사용할 수 없다
    • 스트림의 연산은 기존 자료를 변경하지 않는다
    • 스트림의 연산은 중간 연산과 최종 연산이 있다

14 장 예외 클래스

continue
Hugo로 만듦
JimmyStack 테마 사용 중