본문 바로가기

분류 전체보기365

JAVA 17일차 (2023-06-15) 자바 기초 DAY15_인스턴스 목록 제어 기능을 별도의 클래스로 캡슐화_개인프로젝트 - 마트 관리 시스템 ## 18. 인스턴스 목록 제어 기능을 별도의 클래스로 캡슐화: 재사용성 높임 - 핸들러에서 인스턴스 목록을 다루는 기능을 별도의 클래스로 분리 - UI가 CLI에서 윈도우 또는 웹으로 바뀌더라도 인스턴스 목록 다루는 기능은 재사용 가능 - 배열 크기 자동 증가 기능 추가 인스턴스 목록 제어 기능을 별도의 클래스로 캡슐화: 재사용성 높임 핸들러에서 인스턴스 목록을 다루는 기능을 별도의 클래스로 분리 ㄴ UI가 CLI에서 윈도우 또는 웹으로 바뀌더라도 인스턴스 목록 다루는 기능은 재사용 가능 ㄴ MemberList 클래스 생성 MemberList.java ㄴ MemberHandler 클래스에 있는 인스턴스 목록을 다루는 변수들을 MemberList 클래스로 이동 MemberHandler.java => Me.. 2023. 6. 15.
JAVA 17일차 (2023-06-15) 자바 기초 DAY15_인터페이스를 이용한 객체 사용 규칙 정의_개인프로젝트 - 마트 관리 시스템 ## 17. 인터페이스를 이용한 객체 사용 규칙 정의 - 인터페이스 문법으로 핸들러의 실행 규칙 정의 - 인터페이스에 정의한 대로 핸들러 구현 - 인터페이스에 정의한 대로 핸들러 실행 ㄴ 구현 클래스는 인터페이스 규칙에 따라 작성 인터페이스를 이용한 객체 사용 규칙 정의 인터페이스 문법으로 핸들러의 실행 규칙 정의 인터페이스에 정의한 대로 핸들러 구현 ㄴ 인터페이스에 정의한 것과 다르므로 오류 => service() -> execute() 로 변경 => App.java 도 같이 변경해줘야 함 App.java 수정 ㄴ Handler Interface 를 import 해줘야 함 => ㄴ ItemHandler 와 MemberHandler 에도 Handler Interface 를 설정해주어야 함 2023. 6. 15.
JAVA 17일차 (2023-06-15) 자바 기초 DAY15_디버깅 Eclipse 에서 디버깅 하는 방법 ㄴ Switch 선택 ㄴ 동그라미 나오도록 해당 명령줄 번호 왼쪽 더블클릭 ㄴ 위 코드 printTitle() 위치에서 해당 버튼 선택하여 Step Into => 해당 메서드 위치로 이동 ㄴ 위 코드 System.out.println(...) 은 작성한 메소드가 아닌 운영체제에 호출하는 메서드이므로 해당 버튼 선택하여 Step over ㄴ printMenu(); 도 printTitle(); 과 마찬가지로 동일하게 실행 ㄴ 여기서는 입력을 받을 때까지 기다림 ㄴ 입력을 받은 후 입력받은 1에 해당하는 memberHandler.execute() 위치에서 Step Over ㄴ memberHandler.execute() 위치로 이동하여 실행 ㄴ 현재 중지된 디버깅 상태를 해.. 2023. 6. 15.
JAVA 17일차 (2023-06-15) 자바 기초 DAY15_GRASP 패턴 : Information Expert 적용_개인프로젝트 - 마트 관리 시스템 ## 16. GRASP 패턴: Information Expert 적용 - 메뉴 기능을 각 핸들러에게 위임 - 기능을 수행하는데 필요한 정보를 가지고 있는 객체에 역할 부여 - CRUD 메뉴 기능은 핸들러로 이전 - App 클래스는 메인 메뉴 제공 메뉴 기능을 각 핸들러에게 위임 ㄴ 기능을 수행하는 데 필요한 정보를 가지고 있는 객체에 역할 부여 ㄴ CRUD 메뉴 기능은 핸들러로 이전 App.java ㄴ 메뉴를 직원, 게시글, 공지, 물품으로 분리 MemberHandler 수정 MemberHandler.java ㄴ App.java에 있는 메뉴부분 가져와서 이용 App.java ㄴ 1번 입력 시 memberHandler 의 execute() 실행하도록 수정 MemberHandler.java 수정 public.. 2023. 6. 15.
JAVA 16일차 (2023-06-14) 자바 기초 DAY14_인스턴스 필드와 인스턴스 메서드, 생성자와 의존 객체 주입_개인 프로젝트 - 마트 관리 시스템 ㄴ 해당 내용을 개인 프로젝트에 적용 인스턴스 필드와 인스턴스 메서드, 생성자와 의존 객체 주입 만들었던 BoardHandler2.java 삭제 후 시작 BoardHandler 클래스에 인스턴스 필드 및 메서드 적용 ㄴ 스태틱 필드를 인스턴스 필드로 만들기 => ㄴ MAX_SIZE 를 private 으로 해주는 이유는 해당 필드는 BoardHandler 클래스 안에서만 사용하기 때문 ㄴ 인스턴스 멤버(필드나 메서드)를 사용하는 경우 인스턴스 메서드로 정의해야 하므로 static 제거 및 this 이용 MemberHandler, itemHandler 클래스에 인스턴스 필드와 인스턴스 메서드를 적용 MemberHandler.java package bitcamp.report.handler; import bit.. 2023. 6. 14.
JAVA 16일차 (2023-06-14) 자바 기초 DAY14_CRUD 구현 / 스태틱 필드의 한계 확인_개인 프로젝트 - 마트 관리 시스템 직원 클래스를 추가하여 관리자와 일반직원 분류 Member.java package bitcamp.report.vo; public class Member { // 모든 인스턴스가 공유하는 값은 스태틱 필드에 보관한다. private static int userId = 1; // 상수는 스태틱 필드로 정의한다. // 정보를 다룰 때는 그 정보를 갖고 있는 클래스에 그 기능을 둔다. // 필드도 마찬가지이다. // => GRASP 패턴: Information Expert public static final char MANAGER = '0'; public static final char STAFF = '1'; // 인스턴스 필드는 각각 개별적으로 유지해야 하는 값을 저장할 때 사용한다. // new 명령을 통해.. 2023. 6. 14.