java
Lambda
int max(int a, int b) { return a > b ? a : b;}람다식으로 변환(a, b) -> a > b ? a : b;람다는 익명객체new Object { int max(int a, int b) { return a > b ? a : b; }};메서드는 객체 안에만 존재할수 있기 때문문제점 : Object 자료형으로 max()를 호출 불가이유 : Object 클래스에는 max()라는 메서드가 없기 때문Object 대신 FunctionalInterFace@FunctionalInterfacepublic interface MyFunction { int max(int a, int b);}class Main { public static void main(String[] args) { My..
[java/자바] 자료구조 Map
공부한것 Key, Value 형태로 Map에 저장. 저장한 키의 이름으로 객체 생성 (Map에 저장할때 Value로 넣어준 객체). import java.util.HashMap; import java.util.Map; class MyDate { int year; int month; int day; public MyDate(int year, int month, int day) { this.year = year; this.month = month; this.day = day; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public int getMonth() { return month; }..
[java/자바] 디자인 패턴 (전략 패턴)
전략 패턴은 알고리즘 군을 정의하고 캡슐화해서 각각의 알고리즘을군을 수정해서 쓸 수 있게 해준다. 전략 패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있다. public class MiniWeaponSimulator { public static void main(String[] args) { Character c = new Queen(); c.setWeapon(new AxeBehavior()); c.setWeapon(new BowAndArrowBehavior()); c = new Knight(); c.setWeapon(new SwordBehavior()); c.setWeapon(new KnifeBehavior()); c = new King(); c.setWeapon(new Kn..
[java/자바] 숫자 맞추기 게임 구현
기능설명 1 ~ 100 숫자를 입력 받습니다 입력 받은 숫자가 랜덤 값과 맞는지 비교합니다. 맞으면 횟수를 출력하고 다시 시도 또는 현재 최저횟수로 맞춘 횟수 출력 또는 종료 할 것 인지 묻습니다. 공부한것 - while 문 - if, if-else 문 - 문자열, 문자 배열 - 배열 정렬 import java.util.Arrays; import java.util.Scanner; public class Count { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int check; // 입력 받은 숫자 int random = (int) (Math.random() * 100) + 1; int count = 0; /..
[java/자바]물건 구매 서비스 구현
기능 설명 컴퓨터, 책상의 두 가지 제품을 구매할 수 있습니다. 구매할 제품과 가진 돈을 입력할 수 있습니다. 물건 구매 시 10퍼센트의 보너스 포인트를 주고, 물건 금액의 1퍼센트를 할인합니다. 구매 후 구매한 제품의 이름과 남은 돈을 출력합니다. 공부한 것 - 객체 배열 - 다형성 - Object 클래스 import java.util.Scanner; public class Buyer { int money; int bonusPoint; Product[] cart = new Product[10]; Scanner sc; int count = 0; void buy(Product p) { sc = new Scanner(System.in); System.out.println("현재 가지고 있는 돈 입력"); m..
[java/자바] 객체의 응집도
객체의 응집도를 높이기 위해서는 객체 스스로 자신의 데이터를 책임저야 한다. 외부의 간섭을 최대한 배제하고 메시지를 통해서만 협력하는 자율적인 객체들의 공동체를 만드는 것이 휼륭한 객체지향 설계를 얻을 수 있는 지름길인 것이다. - 조영호, 『오브젝트』, 위키북스, 26p.