1. 직렬화
네트워크를 통해 객체를 주고 받기 위해 필요함.
객체는 덩어리라서 이것을 한 줄로 세워서(직렬화) 전송한다.
받을 때도 한 줄이어서 이것을 역직렬화를 통해 덩어리로 다시 묶는다.
직렬화할 객체 클래스(일반적으로 DTO클래스)에서 Serializable을 구현하면 된다.
아무런 필드도 메소드도 없기 때문에 오버라이딩 해야만 하는 메소드는 없다.
Serializable을 구현한 클래스를 상속받아도 해당 클래스는 직렬화가 가능하다.
Serializable을 구현한 클래스에서
직렬화 하지 않을 필드가 있다면 필드 선언 시 데이터 타입 앞에 transient 를 입력해준다.
파일 아웃풋 스트림 > 버퍼드아웃풋 스트림 > 오브젝트 아웃풋 스트림 하여 .ser로 저장가능하다.
일단 쓰긴 해야 하니까 꾸역꾸역 썼는데 솔직히 하나도 안 들어와서 활용가능성 제로다.
필요한 상황이 닥치면 그때 다시 공부하게 될 각이다....
2. 페인트 메소드 내 굵기 설정
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D)g;
g2d.setStroke(new BasicStroke(10));
g.drawLine(x1, y1, x2, y2);
}
두 줄 추가해서 굵기를 설정해줄 수 있다.
연필은 mouseDragged 에서 drawLine을 통해 구현 가능하다.
3. 성적관리
https://github.com/HJ-Rich/Bit159/blob/master/homework/studentManager/ScoreForm.java
입력 : 5개의 텍스트필드에 입력후 입력을 누르면 리스트에 추가된다.
출력 : 출력을 누르면 테이블 현재 리스트들을 화면에 출력한다.
검색 : 학번으로 검색하여 일치하면 해당 행을 화면에 출력한다.
순위 : 총점 기준으로 내림차순한다.
저장 : txt파일로 현재의 리스트를 출력한다.
열기 : 현재 리스트에 추가할지, 새로 열지 선택하여 열 수 있다.
X : 종료 전 저장할지 탐색하여 옵션에 따라 작동한다.
강사님의 요구사항은
DTO클래스, 추상클래스, 추상 오버한 클래스, 메인클래스, GUI클래스
이렇게 5가지 클래스를 생성해서 데이터를 주고 받아 구현하라고 하셨는데...
나는 GUI클래스와 DTO클래스 두 가지만 이용해서 구현했다.
일단 단순하게 만들고 보자는 마인드이긴 한데.. 마음 한 켠 불안하다.
그래도 일단 구현해내야 기분이 좋다. 찝찝하긴 해도.
개인 공부 시간을 확보하지 못하면 계속 하루 벌어 하루 사는 느낌이라 영 별로다.
'Java & Spring' 카테고리의 다른 글
2020.05.07 (목) 학습 : 그림판 더블버퍼링, jSmooth (0) | 2020.05.07 |
---|---|
2020.05.06 (수) 학습 : 네트워크, 채팅, 서버 클라이언트 (0) | 2020.05.07 |
2020.05.04 (월) 학습 : 컴파일과 실행 동시에, Socket, 자바프로젝트 시작 (캐치마인드) (0) | 2020.05.04 |
2020.05.01 (금) 학습 : 네트워크, EOFException, Interface (0) | 2020.05.01 |
2020.04.28 (화) 학습요약 : 자바 타이머, 자바 메모장 (0) | 2020.04.29 |