Java/Java 연습 문제 9

[Java 연습문제] Singleton과 Prototype 리포지토리 *

Singleton과 Prototpye 리포지토리GoF 디자인 패턴 중, 생성 패턴에 속하는 ProtoType 패턴은 코드를 클래스들에 의존시키지 않고 기존 객체들을 복사할 수 있도록 하는 패턴입니다.객체가 있고, 그 객체의 정확한 복사본을 만들고 싶을 경우, 일반적인 방식에서는 같은 클래스의 새 객채를 생성한 다음 원본 객체의 모든 필드를 새 객체로 복사해야 합니다. 하지만 이런 경우, 몇 가지 위험성과 불편한 점이 있습니다.   1. 원본 객체의 필드 중 일부는 private으로 선언되어 있어, 외부에서 볼 수 없다.   2. 해당 원본 객체의 클래스 소스코드를 알아야 할 필요가 있다.프로토타입 패턴은 실제로 복제되는 객체들에 복제 프로세스를 위임합니다. 복제를 지원하는 객체를 프로토타입이라고 하며, ..

[Java 연습문제] Iterable과 Comparable * - Book 예제

"book.csv"을 읽어서 Book 객체로 변환한 후, 이를 LinkedList에 저장한다. Books 클래스는 Iterator 패턴을 통해 for-each문으로 쉽게 순회할 수 있다. 코드 book.csv더보기더보기더보기더보기더보기1|이노베이터|창의적인 삶으로 나아간 천재들의 비밀|월터 아이작슨|innovator.jpg|42000|초특급 베스트셀러 『스티브 잡스』에 이은 월터 아이작슨의 놀라운 역작!\r\n최초의 컴퓨터에서 트위터와 페이스북까지,\r\n디지털 혁명을 선도한 창의적인 천재들의 이야기\r\n\r\n국내에서만 70만 부가 판매된 세계적인 베스트셀러 『스티브 잡스』의 저자 월터 아이작슨이 10년을 준비한 역작, 『이노베이터』가 돌아왔다. 세상을 바꾸는 혁명을 일궈낸 창의적인 천재들의 이야기를..

[Java 연습 문제] String Sort (with Bubble Sort)

문제Generic을 이용하여 String을 정렬해라. 코드import java.util.*;public class StringBubbleSort {// interface인 Comparable을 extends 하는 이유: T는 Comparable인 타입이어야 한다!! // 그래서 Comparable을 extends(확장)한 타입이다 라는 의미다! public static > void bubbleSort(T[] array) { int n = array.length; for (int i=0; i 0) { T temp = array[j]; array[j] = array[j+1]; ..

[Java 연습 문제] 상속을 사용하여 인터페이스 구현

Adder와 Multiplier는 두 숫자를 인자로 받아 연산하는 같은 행위(Common Behavior)를 수행한다. 이 공통된 행위를 interface로 만든다.(BinaryOp) 그 후 Adder와 Multiplier는 이를 implements 한다. 코드BinaryOp.javainterface BinaryOp { int apply(int left, int right);} Adder.javaclass Adder implements BinaryOp { public int apply(int left, int right) { return left + right; }} Multiplier.javapublic class Multiplier implements BinaryOp { ..

[Java 연습 문제] 텍스트 파일의 소문자 복사본 생성

문제텍스트 파일의 이름을 입력 받아 파일을 읽은 후, 읽은 파일의 모든 문자를 소문바로 변경한 복사본을 생성하는 프로그램을 작성하시오. 코드import java.io.*;import java.util.Scanner;public class CopyFileLower { public static void main(String[] args) { String stringFrom; String stringTo; BufferedReader fileStreamFrom; BufferedWriter fileStreamTo; Scanner scanner = new Scanner(System.in); System.out.println("Copy ..

[Java 연습 문제] Text file 입출력

문제텍스트 파일의 이름을 main 함수의 argument로 받아서 파일의 내용을 요약해서 출력.터미널에서 java FileDetails Yesterday.txt 하면 txt파일을 넘겨주면서 실행한다. Text file/* Yesterday.txt */YesterdayYesterday, All my trouble seemed so far awayNow it looks as though they're here to stayOh, I believe in yesterdaySuddenly, I'm not half the man I used to beThere's a shadow hanging over meOh, yesterday came suddenlyWhy she had to go, I don't know sh..

[Java 연습 문제] 분수 계산(덧셈, 뺄셈, 곱셈) 코드

유클리드 호제법(Euclidean Algorithm) - 최대공약수 구하기2개의 자연수 또는 정식(整式)의 최대공약수(Greatest Common Divisor)를 구하는 알고리즘의 하나.2개의 자연수 a, b에 대해서 (a > b)일때, r = a%b라 하면 (a, b)의 최대 공약수는 (b, r)의 최대 공약수와 같다.(b, r)은 다시 r1 = b%r, 이는 (b, r)의 최대 공약수는 (r, r1)의 최대 공약수와 같다. 이를 오른쪽 수(나머지)가 0이 될때까지 반복한다.오른쪽 수(나머지)가 0이 되면 왼쪽 수가 최대 공약수다./* Rational.java */public class Rational { private int numerator; // 분자 private int deno..

[Java 연습 문제] 은행 계좌 문제

문제 1) BankAccount 클래스 캡슐화 - private, getter/setter문제 2) 계좌 번호 생성문제 3) withDraw, deposit 메소드 추가+ 추가 Lab 8-1) 계좌 이체 메소드: transferFrom+ 추가 Lab 9-1) 계정 유형 enum: AccountTypeimport java.math.*;import java.util.*;public class BankAccount { private long accountNumber; private String ownerName; private BigDecimal balance; // 연습 2) 계좌 번호 생성. private static long nextAccountNo; private st..