교재: 명품 Java Essential 1. Bear클래스 public Bear(int distance) 생성자는 distance만 받고, bear의 위치는 0,0으로 자동으로 설정됩니다. private char inputdirection() bear가 이동할 위치를 입력받는 메소드. 클래스 내에서만 사용할거라 private로 만들었습니다. @Override public void move() inputdirection()메소드를 통해 입력받은 값으로 bear의 위치를 이동시킵니다. @Override public char getShape() bear가 화면에 출력될 모양을 반환하는 메소드입니다. B 2. Fish클래스 static private int step Fish클래스의 move가 출력될 때마다 1씩..
분류 전체보기
퀵 정렬 partition함수에 대한 각기 다른 코드를 분석해보겠습니다. partition함수는 배열과 left, right인덱스를 받아 한 단계의 퀵정렬을 수행한 후 피봇인덱스를 반환합니다. 일단 가장 쉬운 방법입니다. 1. Algorithm Partition(arr, left, right) 2. Input: 정렬할 배열, 맨 왼쪽 인덱스, 맨 오른쪽 인덱스 3. Output: high(피봇의 현재 인덱스) 4. pivot
class Circle { private int radius; public Circle(int radius) { this.radius = radius; } public int getRadius() { return this.radius; } public void setRadius(int radius) { this.radius = radius; } } class CircleManager { static void copy(Circle src, Circle dest) { dest.setRadius(src.getRadius()); } static boolean equals(Circle a, Circle b) { if (a.getRadius() == b.getRadius()) return true; else ret..
class Song { private String title; public Song(String title) { this.title = title; } public String getTitle() { return title; } } public class four { public static void main(String args[]) { Song mySong = new Song("Nessun Dorma"); Song yourSong = new Song("공주는 잠 못 이루고"); System.out.println("내 노래는 " + mySong.getTitle()); System.out.println("너 노래는 " + yourSong.getTitle()); } } 멤버변수는 private으로 했습니다..
저는 1. Player 클래스 2. WordGameApp public클래스 이렇게 2개의 클래스를 만들어 줬습니다. Player클래스는 게임을 진행하는 플레이어 개개인의 정보를 담고있습니다. ex. 이름, 입력한 단어, 단어에 대한 정보(첫 단어, 마지막 단어) WordGameApp클래스는 단어게임 한 판에 대한 정보를 담고 있습니다. ex. 게임진행을 조절하는 go변수, 게임에 참가하는 참가자들의 배열 players Player클래스의 멤버함수는 다음과 같습니다. public Player(String name) 생성자. 인자를 받아 플레이어의 이름을 초기화해줌. public void getWordFromUser() 단어를 입력받아 해당 차례인 플레이어의 필드 word에 저장하고, 그 단어의 정보도 저장..
교재: 명품 JAVA ESSENTIAL 125페이지 실습문제 java에서는 scanner의 next시리즈를 통해 문자 하나를 입력받을 수 없다고 합니다. 그래서 구글링을 해본 결과, scanner.next()메소드로 String값을 받은 뒤, String 메소드에 포함된 charAt()메소드를 다시 이용하는 방법으로 char문자 하나를 입력받을 수 있다고 합니다. 사용은 이런식으로 하면 됩니다. 그냥 사용법만 복붙하기엔 아쉬운 감이 있죠. 교수님은 항상 java도큐먼트를 열심히 보라고 말씀하셨습니다. 그래서 도큐먼트를 찾아보니 charAt메소드의 매개변수는 인덱스라고 하네요. 입력받은 문자열 중 가장 앞에 있는 놈을 가져오는 건가 봅니다. 그리고 이 문제에서는 아스키코드를 꼭 필요로 합니다. 다시 구글링..
교재: 명품 JAVA ESSENTIAL 페이지 121~ 연습문제 1~99 사이 랜덤한 숫자를 맞추는 게임입니다. import java.util.InputMismatchException; import java.util.Random; import java.util.Scanner; 일단 임포트 할 것들 모두 선언해줍니다. 예외처리타입 InputMismatchException은 스캐너로 nextInt()를 받았을 때 문자를 입력하는 등 잘못된 입력값을 받을 경우를 처리해주기 위해 사용됩니다. (문제에서는 예외처리 하라는 말 없었지만 배웠으면 써먹어야죠.) 랜덤은 랜덤함수를 사용하기 위해 임포트 해줍니다. 스캐너도 임포트 해주고요. static void startgame() { Random r = new Rand..
교재: 명품 JAVA ESSENTIAL 페이지 89 9번, 10번, Bonus1번 import java.util.Scanner; public class threesixnine { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int first, second; int num; System.out.println("1~99 사이의 정수를 입력하세요>> "); num = scanner.nextInt(); first = num/10; second = num%10; System.out.print("박수"); if (first%3 == 0 && second%3 == 0) System.out.println("짝짝");..
이번에도 명품 java essential 교재 연습문제입니다. 자바는 메뉴판이 너무 깔끔하게 출력돼서 좋네요. 처음 입력으로 어떤 종류의 커피인지 입력하고, 두 번째 입력으로 몇 개인지 입력해줍니다. 만약 "에스프레소 2"라고 입력한다면 2000×2=4000원이 출력될겁니다. import java.util.Scanner; public class cafe { static void menu() { System.out.println("┌───────────────┐"); System.out.println("│에스프레소 2000원 │"); System.out.println("│아메리카노 2500원│"); System.out.println("│카푸치노 3000원│"); System.out.println("│카페라..
이번에도 명품 Java Essential교재 연습문제입니다. Scanner와 if문 연습을 위한 문제인데요. 돈의 액수를 입력받아 오만원권부터 1원까지 각각 몇 개로 변환되는지 출력하라는 문제입니다. 어려운 문제는 아니지만 구글링의 중요성을 위해 블로그에 올려봅니다. 저는 처음 문제를 풀었을 때 상당히 코드가 더럽다고 생각했었습니다. 실제로 제 코드는 더러운 게 맞았고요. 다음은 제가 처음 문제를 풀었을 때 코드입니다. import java.util.Scanner; public class money { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int money; int fiftythousand, t..