class MyPoint { public MyPoint(int x, int y) { this.x = x; this.y = y; } @Override public String toString() { return "MyPoint (" + x +", " + y +")"; } private int x, y; } public class app { public static void main(String[] args) { MyPoint a = new MyPoint(3, 20); System.out.println(a); } } toString만 오버라이딩 해주면 됩니다~~ 함수 매개변수랑 반환값은 java se 15 oracle에 Object클래스의 메소드를 검색해서 복붙해줬습니다! 똑같아야 오버로딩이 아니라 오버라이..
프로그래밍 언어/javastudy
저는 Histogram클래스를 따로 만들어줬습니다. 멤버변수와 멤버함수는 다음과 같습니다. final static int alpha_size = 26; a~z까지의 알파벳 개수 int[] histro; 인덱스 0~25까지는 각각 알파벳 A~Z에 대응됨. 사용자가 입력한 문자열에 각각의 알파벳이 몇 개 들어있는지 저장해주는 배열. public Histrogram() 생성자. histro배열을 26사이즈로 만들어주고, 각각의 값을 0으로 초기화해줌. void show_histro() 히스토그램을 화면에 그려주는 함수. void init_histro() 히스토그램 배열의 각각 원소 값을 0으로 초기화해주는 함수 void make_histro(String str) String문자열을 입력받아 각각의 알파벳이 몇..
중간에서 값을 삭제하고 뒤에 있는 값들을 땡겨주고 싶어서 배열로 해도 될껄 굳이굳이 연결리스트로 만들어봤습니다. 하나하나 구현했더니 엄청 복잡해 보이네요. 괜히 어렵게 만든 것 같다는 생각도 듭니다. 자바에서 연결리스트를 구현해보는 건 처음인 것 같네요. import java.util.InputMismatchException; import java.util.Scanner; abstract class Shape { abstract void draw(); } class Line extends Shape { @Override public void draw() { System.out.println("Line"); } } class Rect extends Shape { @Override public void dr..
교재: 명품 자바 에센셜 class Circle { private int radius; public Circle(int radius) { this.radius = radius; } public int getRadius() { return radius; } } public class NamedCircle extends Circle { private String name; public NamedCircle(int radius, String name) { super(radius); this.name = name; } public void show() { System.out.println(name + ", 반지름 = " + getRadius()); } public static void main(String[] ..
교재: 명품 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씩..
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..