본문 바로가기

콩's EDUCATION/콩's JAVA

JAVA 5일차 수업

- java.lang.object : 자바의 모든 클래스중에 최상위 클래스

- equals() : 주소값 비교

- hashcode() : 객체의 해쉬코드값을 비교

 

object o = new String();

o = new StringBuffer();

o.getClass();

 

- wait(), notify(), notifyAll() : 스레드의 동기화 블럭안에서만 호출

- toString() : 객체에 대한 정보를 문자열로 리턴 (객체의 fullname@hashcode)

 

- clone() : 객체 자신의 멤버필드를 복제해서 새로운 객체를 생성하는 메서드

복제가능 하려면 Cloneable 인터페이스를 구현한 클래스만 복제 가능

- java.lang.String : 상수 문자열

Java.lang.StringBuffer : 수정 가능한 문자열을 위한 버퍼와 주요 메서드를 제공하는 클래스

- Java.lang.Math : 수학 계산에 유용한 메서드를 제공.

멤버필드와 메서드 전부 static 으로 선언 되어있으므로, 객체 생성없이 클래스이름으로 접근 및 호출

Math.멤버필드, Math.메서드

- Wrapper 클래스 : 기본 자료형(primitive data type)을 객체로 캡슐화

Boolean : boolean, Byte : byte, Short : short, int : Integer char : Character, float : Float, long : Long, double : Double

모든 primitive type을 문자열로 변환할 때는 String.valueOf()를 사용하고 문자열을 각각의 primitive type으로 변환할 때

Integer.parseInt(), Float,parseFloat() Double.parseDouble();

 

<Java Collection FrameWork>

Java로 만들어진 데이터 그룹을 객체로 저장할 수 있는 정형화된 체계적인 프로그래밍 방식으로 표준화한 클래스들

- 배열 : 객체, 저장할 수 있는 값들의 객체, primitive data type 생성시에 배열의 크기를 선언하며, 동적으로 배열 크기는 변경이 불가(단점),

Index(첨자)를 통해서 접근, 요소를 저장, 삭제, 검색….

- Collection 클래스들 :

객체, 객체만 저장할 수 있다. 생성시에 객체가 저장될 크기를 선언하지 않아도 저장 가능한 객체의 크기는 동적으로 변경가능

Primitive Data type은 Boxing 처리되어 Wrapper클래스로 저장된다.

Collection 클래스들 별로 저장된 요소에 접근, 저장, 삭제, 검색등의 메서드를 제공하며

모든 Collection 클래스의 요소에 접근, 저장 삭제, 검색하는 공통 방식도 제공한다.

Collection ß LIST : 순서가 있는 데이터 집합을 저장, 데이터의 중복 허용

Collection ß SET : 순서가 유지 되지 않는 데이터 집합을 저장, 중복 데이터 저장 하지 않음

Map : 데이터 집합을 저장할 때 데이터 집합을 빠르게 검색할 수 있는 key객체와 함께 저장하는 유형

- LIST ç 상속 받는 관계 : Vector, ArrayList, LinkedList…

- Vector : 멀티 스레드 환경에서 동시 접근, 변경을 위한 동기화 처리가 되어 있는 클래스

- ArrayList : 단일 스레드 환경에서 동기화가 필요하지 않는 데이터 집합 처리에 사용할 수 있는 클래스

* 데이터 저장할 때 : add() *데이터 꺼내올 때 : get(index)

- Set ß HashSet(중복 허용 하지 않고, 순서 보장하지 않는다), LinkedHashSet(순서 유지), TreeSet(정렬저장)

Set과 List계열은 add, get, remove사용

- iterator() 메서드는 컬렉션 클래스에 저장된 요소들을 나열하는 방법을 제공한다.

(set과 list계열에 대해서 요소를 나열하는 표준 방법을 제공)

- Iterator iter = 해당 컬렉션 개체.iterator()

While(iter.hasNext()){

    Iter.next(); }

- Map ß HashTable(동기화처리), HashMap(New Version, 새버젼, 동기화처리 안됨),

TreeMap(이진검색트리, 저장시 정렬형태, 시간 오래걸림, 검색 결과 정렬 보장, 정렬, 범위 검색시 유리)

 

GUI 프로그래밍

AWT - 중량 컴포넌트, 내부적으로 OS의 NATIVE메서드를 호출해서 OS의 GUI컴포넌트가 실행됨

Swing – 경량 컴포넌트, 순수하게 자바로 만들어진 GUI 컴포넌트 OS별로 일괄된 LOOKANDFELL

구현절차는 비슷하다

  1. 컨테이너 생성

    - 컴포넌트의 틀 역할을 하면서 실행환경을 제공

    - Window 계열: Frame, Dialog (기본값 레이아웃은 BorderLayout)

    - Panel 계열: Applet (기본값 레이아웃은 FlowLayout)

    컨테이너는 크기지정, 가시성 설정, 레이아웃 매니저(BorderLayout,FlowLayout,GridLayout,CardLayout) 설정

  2. 컨테이너에 컴포넌트 배치
  3. 배치된 컴포넌트에 이벤트 처리

- BorderLayout은 동,서,남,북,센터에 각각 컴포넌트 1개씩만 배치할 수 있다.

- 컨테이너에 컴포넌트 배치 add()

- 배치된 컴포넌트에 이벤트 처리 버튼 à ActionEvent 발생

ActionEvent를 처리하는 핸들러는 ActionListener 인터페이스를 구현(추상메서드인 이벤트 핸들러 메시지를 반드시 오버라이드 해야한다)

이벤트 핸들러 구현을 위한 정의 범위:

1. View를 정의하는 클래스에서

2. Inner클래스로 정의

3. Annonymous클래스로 정의

4. 외부 클래스로 정의

 

List, TextArea, TextFiled, Choice, Canvas