7월 3주차 3일 (3주)
Properties : 외부로 영속적으로 저장하고싶을때, 입출력시에 필요
다이나믹 오브젝트(객체) : 제네릭보다 강력한 기능, 클래스안에 속성들이 그때그때 달라진다. 필요에 따라 속성을 바꾼다. 내가 원하는 속성을 넣으면서 프로그래밍 하고싶을때 사용하는것
속성들을 저장하기위한 하나의 데이터 구조인 맵이 필요하다. 동적으로 저장할수 있도록 한다.
다이나믹 객체의 toString을 스트링버퍼나 빌더를 이용하여 값을 합쳐서 만든다.
스트링 빌더(비동기) & 스트링 버퍼(동기화)
system 클래스의 JVM 환경변수읽을시에 map형태로 가져온다.
콜랙션 객체들에 관한 유틸리티 클래스에 콜랙션스(s)라는 클래스가 있다.
제네릭 타입을 줄때 "?"을 주면 *와 같은 역할을 한다.
extends는 상속관계에서 자식들까지
super는 상속관계에서 부모들까지
기존의 소트와 달리 사용자 구상클래스가 들어가면 sort가 애러뜬다.
일반화되어있는 정렬 기준이 아니기때문이다
comparator 인터페이스를 통해 구현해줘야한다.
- AWT API를 이용한 GUI(Window) 프로그래밍
AWT : Abstract Window Toolkit 의 줄임말
AWT의 특징 : AWT로 만든 프로그램은 각 OS에 따라 화면이 달라진다.
AWT API 분류
- Visual Component : Button, Label, TextField, TextArea, CheckBox, List Choice등
- Container : 각가의 컴포넌트들을 배치하기 위한 컴포넌트들, Window, Frame, Dialog, FileDailog, Panel등
--- 오전 끝
awt의 모든 컴포넌트들은 재사용이 가능하다. (상속 , 다형성으로 인해 가능)
- Container 배치관리자(LayoutManager)
좌표값으로 배치하는것을 권장하지않는다. 다른 크기의 창으로 갔을시에 비어있는공간이 생기고 유연하지않기때문에.
Floawlayout()을 통하여 흐르는듯한 레이아웃을 해보았다
Frame은 기본적으로 BoarderLayout옵션이 적용되어있다.
5가지 (NORTH, WEST, EAST, SOUTH, CENTER)로 나뉘어있으며 각 위치에 꽉찬다.
화면이 변해도 동적으로 크기 변한다.
하지만 복잡한 화면을 구하기 어렵다. -> Panel이 필요하다.
Panel을 통해서 채팅창 레이아웃을 만들엇다!!(BorderLayoutFrame)
- GridLayout
엑셀의 시트와 비슷하게 생긴 형태이다.
화면 하위 개체들은 복합관계로 되어있어 상위 개체가 사라지면 하위 개체도 사라진다.
- AWT Component의 event 처리
이벤트란? : 프로그램과 사용자 간의 상호작용을 위해서 사용자가 키보드나 마우스등의 장치를 통해서 응용프로그램에 어떤 요구를 하는 사건을 말한다.
이벤트소스(Source)란? : 버튼(Button)이나 텍스트 입력상자(TextField)와 같은 이벤트가 발생한 컴포넌트 인스턴스를 말한다.
자바에서는 위임형(Delegate) 이벤트 처리 모델을 사용한다.
이벤트가 발생하면 JVM에서 내부적으로 이벤트 객체를 생성한다.
ComponentEvent - 저수준 이벤트, 기계의 종속적으로 되어있는
ActionEvent - 고수준 이벤트, 추상적인 ~~, 구현해야될 메소드가적다(심플하다)
금요일 실기평가 예정중