분류 전체보기 203

계산기 - 추상클래스 응용(Add, Sub, Mul, Div 클래스에 공통된 필드와 메소드가 존재)

철수 학생은 다음 3개의 필드와 메소드를 가진 4개의 클래스 Add, Sub, Mul, Div를 작성하려고 한다 int 타입의 a, b 필드: 2개의 피연산자 void setValue(int a, int b): 피연산자 값을 객체 내에 저장한다. int calculate(): 클래스의 목적에 맞는 연산을 실행하고 결과를 리턴한다. 곰곰 생각해보니, Add, Sub, Mul, Div 클래스에 공통된 필드와 메소드가 존재하므로 새로운 추상 클래스 Calc를 작성하고 Calc를 상속받아 만들면 되겠다고 생각했다. 그리고 main() 메소드에서 다음 실행 사례와 같이 2개의 정수와 연산자를 입력받은 후, Add, Sub, Mul, Div 중에서 이 연산을 처리할 수 있는 객체를 생성하고 setValue() 와 ..

프로그램 문제 2021.11.01

자바 코딩이 잘 안 될 경우

//클래스 만드는 것이 어려울 경우... 1.class를 적고 클래스 이름을 만든후 class AAA{ } 이런식으로 클래스를 작성한다. 2.데이터 멤버(인스턴스 변수)를 반드시 만든다. 3.생성자(클래스 이름과 동일하게)를 만든다. 4.데이터 멤버(인스턴스 변수)를 컨트롤하는 함수를 만든다. 5.생각이 나지 않을 경우, 다른 class 있는 내용을 복사, 붙여넣기 한다. 주의해야할 사항(실수 하지 말것) 1. 클래스 안에 클래스가 들어 가지 않도록 한다. ex) class A{ class B{ } } 2. 되도록 이면 메인을 가진 class는 따로 파일을 만들고 시작. ex) 이런식으로 public class InterfaceTest { public static void main(String[] arg..

프로그램 문제 2021.10.26

갬블링 게임을 만들어보자 - 두 사람이 게임을 진행

import java.util.Scanner; class Person { private int num1, num2, num3; public String name; public Person(String name) { this.name = name; } public boolean game() { num1 = (int) ((Math.random()3)+1); num2 = (int) ((Math.random()3)+1); num3 = (int) ((Math.random()*3)+1); System.out.print("\t"+num1+" "+num2+" "+num3+" "); if(num1 == num2 && num2 == num3) return true; else return false; } } public c..

프로그램 문제 2021.10.25

Color Point 상속

다음은 2차원 상의 한 점을 표현하는 Point 클래스이다. class Point { private int x, y; public Point(int x, int y) { this.x = x; this.y = y; } public int getX() { return x; } public int getY() { return y; } protected void move(int x, int y) { this.x =x; this.y = y; } } [5번] Point를 상속받아 색을 가진 점을 나타내는 ColorPoint 클래스를 작성하라. 다음 main() 메소드를 포함하고 실행 결과와 같이 출력되게 하라. public static void main(String[] args) { ColorPoint cp = n..

프로그램 문제 2021.10.23

로또 배열 - 중복없이

class Lotto{ int lottoNum[] = new int[6]; //랜덤 숫자들을 담을 배열 public Lotto() { setLottNum(); } public void setLottNum() { for(int i=0; i < lottoNum.length ; i++) { //r.nextInt(45) : 45를 upperBound로 한 랜덤 정수 추출 + 1 : 1 ~ 45 lottoNum[i] = (int)(Math.random()*45) + 1; //중복제거 : 현제 index (i) 와 (0 ~ i-1) 비교하여 중복된 숫자가 존재하면 i-- for(int j = 0 ; j < i ; j++) { if(lottoNum[i] == lottoNum[j]) { i--; break; } } }..

프로그램 문제 2021.10.19

자음 모음(영문) 갯수 카운트

package edu.kosmo.ex.main; import java.util.Scanner; import edu.kosmo.ex.vow.ConsVowCount; /* 8.사용자로부터 받은 문자열(영문으로)에서 자음과 모음 개수를 계산하는 프로그램을 작성 입력:abcd 출력: 총글자수는 4개 자음:3 개 모음:1 개 */ public class ConsVowTest { public static void main(String[] args) { while(true) { Scanner sc = new Scanner(System.in); String word = sc.next(); ConsVowCount cons = new ConsVowCount(word); cons.countResult(); //System...

프로그램 문제 2021.10.19