목록Study/Java & Kotlin (46)
Hayden's Archive
관련 포스팅 : https://hayden-archive.tistory.com/62 [자바/Java] 도서관 사서 프로그램 작성하기 - VO Class : Book, Magazine // Magazine은 Book으로부터 상속받는다 - Service Class : BookManager // BookManager는 Book과 Magazine을 관리한다. 그리고 여기에 Javadoc를 작성한다. - Test Class : BookTest.. hayden-archive.tistory.com - 이전에 썼던 소스 코드를 바탕으로 수정하였고 몇몇 기능을 추가하여 다시 작성하였다. 상속, 인터페이스, 싱글톤 패턴 같은 것들이 포함되었다. - 유형이 비슷한 관련된 코드는 아래와 같이 포스팅했었다. https://ha..
관련 포스팅 1. 도서관 사서 프로그램 https://hayden-archive.tistory.com/62 2. 상영 영화 관리 프로그램 https://hayden-archive.tistory.com/69 - Vehicle Super 클래스와 각각의 Sub 클래스로 Truck, Limousine, Motocycle 이 있다.(상속) - VO 클래스에는 Encapsulation, toString()을 적용한다. - VehicleManagerImpl 클래스에 싱글톤을 적용한다. - VehicleManager 인터페이스를 작성하고 Template Method를 지정한다. - CRUD 관련 기능 작성하고 메소드 오버로딩을 적용한다. package vehicle; public class Vehicle { priv..
- 도서관 사서 프로그램 ( 관련 포스팅 : https://hayden-archive.tistory.com/62 )과 유사하지만 인터페이스를 추가하여 클래스가 인터페이스를 구현하도록 하고 CRUD에서 D 기능을 추가하였으며 또 MovieMgrImpl 클래스에 싱글톤을 적용했다. - equals() 함수 뿐만 아니라 contains() 함수를 사용하여 영화 제목이 완전히 일치하지 않더라도 키워드가 포함된다면 검색에서 걸릴 수 있도록 하였다. - 배열을 2개 만들어 담을 뿐만 아니라 System.arraycopy() 기능을 활용하여 배열을 간편하게 카피하였다. package com.vo; public class Movie { private String title; private String director;..
해징 관련 포스팅 : https://hayden-archive.tistory.com/64 참고 1 : https://pasudo123.tistory.com/24 참고 2 : https://micropilot.tistory.com/2416 해징(Hasing) - Has a Relation //수평관계 ==> Service가 VO를 가지고 VO에 의존한다. --> 1. 필드에 선언 // 2. 주입 : 생성자, Setter 상속(Inheritance) - Is a Relation //수직관계 상속(Inheritance) - 프로그램에서의 상속은 부모가 가진 모든 것(필드, 메소드)을 자식에게 물려주는 것 + 자식은 자신만의 멤버(필드, 메소드)를 추가하는 것. - 부모한테 300억짜리 빌딩 물려받으면 재테크해..
- 배열(Array): 같은 데이터 타입(Same Data Type)을 가지는 서로 다른 값들이 하나의 변수로 처리되는 것 ===> 데이터 타입이 다르면 하나로 못 묶는다. - 값이 5개 있으면 변수도 5개 선언되어야 한다. 근데 값이 100개 있다고 변수도 100개 선언하면 비효율적. 그래서 배열이 필요한 것. - 배열은 1. 선언 2. 생성 3. 초기화 - 배열도 객체에 해당. 객체는 반드시 기본값을 가지므로 배열도 기본값이 있다. 또 배열도 객체이므로 new 연산자를 통해 만들어내며, 배열 또한 값이 heap에 저장된다. ( 참고 : https://xxxelppa.tistory.com/75 ) - 기본형 타입의 배열에는 값이 바로 들어감.(ex. int 타입 배열) 1. 선언 int[] arr; 2..
오버로딩 = 중복선언. 똑같은데 똑같지 않게 하는 방법. (오버로딩과 오버라이딩은 전혀 관련이 없다) 메소드 오버로딩(Method Overloading) 기법 - Convention이 아닌 Rule! 안 지키면 에러가 뜸! 1. 메소드 이름은 같아야 한다. 2. 메소드 인자값은 달라야 한다.( 순서 / 개수 / 타입 중 반드시 하나라도 달라야 함) 3. 리턴 타입은 상관 없음. - 하는 일은 똑같은데 처리하는 데이터를 달리할 때 쓰는 기법 - 메소드의 통일감을 강조하면서도 서로 다른 데이터를 처리할 수 있게끔 해준다. - 오버로딩을 세련되게 잘 쓰면 코드의 가독성이 높아지고 일관된 기능을 작성할 수 있음. 예시) public Manager findManager(String n..
- 데이터베이스는 2차원 구조로 생겼음. 행과 열. maker price count product1 product2 product3 ... DB 테이블의 하나의 행(Low)와 1:1 매핑 되는 게 Instance ===> product1, product2, product3, ... DB 테이블의 각각의 열(Column)은 Instance의 Field와 매핑됨 ===> maker, price, count VO Class (VO = Value Object = Domain Object) - 최종적인 데이터는 DB에 저장되는데 DB가 클라우드에 있을 수도 있고 로컬에 있을 수도 있음. - VO 클래스는 직접적인 리소스. 자료. 데이터베이스와 연결지어 생각. - VO 객체는 DB와 매핑된다. 나중에 화면단과 연결..
- VO Class : Book, Magazine // Magazine은 Book으로부터 상속받는다 - Service Class : BookManager // BookManager는 Book과 Magazine을 관리한다. 그리고 여기에 Javadoc를 작성한다. - Test Class : BookTest // 모든 출력은 BookTest에서 한다. BookManager의 요청을 처리할 수 있는 메뉴를 만들어본다. - 위의 내용을 만족할 수 있는 Class Diagram을 작성하고 구현해본다. package com.encore.book; public class Book { private String isbn; private String title; private String author; private S..
참고 : https://blog.azulpintor.io/entry/make-class-diagram-for-eclipse 이클립스에서 클래스 다이어그램 만드는 플러그인 - ObjectAid UML Explorer 클래스 다이어그램을 만드는 유용한 툴은 여러 가지가 있다. 그 중 이클립스에서 ObjectAid UML Explorer라는 플러그인을 설치로 간단하게 만들 수 있다. 결과물 이클립스에서 플러그인설치, 그리고 파일을 드래.. blog.azulpintor.io UML(Unified Modeling Language)은 설계의 기본이고 실무에서 많이 쓰임. 클래스 다이어그램(Class Diagram) : 클래스 간에 Association(누가 누구를 가졌는지)을 보려면 UML 보면 끝. 코드는 안 보..
생성자 전반, 기본 생성자 관련 포스팅 : https://hayden-archive.tistory.com/60?category=775409 [자바/JAVA] 객체 지향 프로그래밍 클래스(Class) / 필드(Field) / 메소드(Method) - 변수(Variable) : 값이 저장되는 공간. Value(값)와 다름. - 클래스(Class)의 구성요소 / 클래스의 멤버 : 필드(Field), 메소드(Method) - 필드(Field) : 클래스.. hayden-archive.tistory.com 명시적 생성자(Explicit Constructor) 현실세계에 있는 라운드티, 점퍼, 반팔티를 인스턴스로 만들고 싶다. -> (타입 : Shirt, 속성: maker : String / longsleeved ..