[주제]- 기존에 구현한 블랙잭 게임을 업그레이드하기 [수정된 내용]- 각 기능별 클래스로 분할- 계정, 로그인 기능 추가- 베팅 기능 추가- 계정 정보(ID, 칩 개수)를 파일로 저장, 게임 시작 시 불러오기 [소스]■ gamePlay.javapackage blackjackGame; import java.util.ArrayList;import java.util.Scanner; public class gamePlay { private int minBetChip; private int maxBetChip; public gamePlay() {} ///// 게임 반복 루프 public gamePlay(ArrayList arrlist, String playID[]) { Scanner sc = new Scanne..
[주제]- 해시맵(HashMap)의 사용 방식 [중요]- 'TreeMap'을 사용하여 출력하면 자동으로 정렬이 됨 ※ 오름차순 정렬. '1, 2, 3, ...', '가, 나, 다, ...', 'A, B, C, ...' [소스]■ Dto.javapackage hasMapTest; public class Dto { int num; String name; public Dto(int num, String name) { this.num = num; this.name = name; } public void output() { System.out.println("num: " + num + ", name: " + name); }}Colored by Color Scriptercs ■ mainClass.javapackag..
[주제]- 배열 리스트와 연결 리스트의 사용 방식 [중요]- 배열 리스트는 'ArrayList'를, 연결 리스트는 'LinkedList'를 사용하면 손쉽게 구현 가능- 제너릭이 사용되었기 때문에 클래스 옆에 사용되는 자료형 기입 필요 ※ 소스에서는 'ArrayList'의 경우 ''로 사용, 'LinkedList'는 ''으로 사용 ※ 자료형은 클래스 이름으로 작성해야 함 [소스]import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedList; public class mainClass { public static void main(String[] args) {/* * 배열 리스트 */ ArrayList arrlist = new ..
[주제]- 추상 클래스와 인터페이스 [중요]1. 추상 클래스- class 앞에 'abstract'를 붙임- 추상 메소드를 하나 이상 포함하고 있는 클래스- 반드시 상속이 필요함 2. 추상 메소드- 내용은 없고 사용할 예정이라고 선언만 한 상태- 사용하기 위해선 내부 또는 외부 클래스에서 내용에 대한 정의 필요- 메소드가 선언만 되어있거나 정의까지 되어있는 것이 섞여져 있음 3. 인터페이스- 클래스는 'implements'를 붙여서 인터페이스를 상속 받을 수 있음- 메소드가 선언만 되어있음- 반드시 상속이 필요함 ★ 각 차이점- 클래스: 메소드 선언, 정의가 전부 되어있음- 추상 클래스: 추상 메소드와 일반 메소드(정의된)- 인터페이스: 메소드가 선언만 되어있음 ※ c언어 header 파일과 흡사 [소스]..
[주제]- 클래스의 상속 방식, Over Ride [중요]1. 상속- 자식 클래스의 생성자가 호출될 때 부모 클래스의 생성자가 먼저 호출됨- 상속 방법: 클래스 오른쪽에 'extend 부모 클래스이름' 추가- 클래스는 다중 상속 불가- 인터페이스는 다중 상속 가능 2. Over Ride- 기존에 사용되는 메소드를 동일한 이름으로 내용만 재정의- 부모 클래스의 메소드를 자식 클래스에서 재정의 하는 것을 의미- 자식 클래스에서 'super' 사용 시 부모 클래스의 메소드를 사용 [소스]■ carClass.javapackage sample03.Car; public class carClass { protected int speed; // 'protected' 자식 클래스는 사용 가능 public carClass..
[주제]- 클래스를 활용하여 배열 기반의 스택 구현하기 [중요]- 'playerCls' 객체를 이용하여 'DTOClass'에 접근 후 멤버 변수의 값을 저장 ※ 'playerCls'라는 가상의 껍데기만 있는 선수를 만든 후 정보(man_id ~ money)를 입력 후 저장 - 'dto'라는 배열(스택) 객체를 통해 'DTOClass'에 접근하여 배열 인덱스에 'playerCls'를 저장 [소스 코딩]■ DTOClass.javapackage sampleDao; public class DTOClass { private int man_id; private String first_name; private String last_name; private String position; private int money..
[주제]- 이전에 구현한 야구게임을 클래스를 분리하여 관리하기 ※ 교육센터 선생님이 공개한 야구게임 소스를 활용 [소스 코딩]■ baseballClassTeacher.javaimport java.util.Scanner; class baseballClass { public static void main(String[] args) { // base ball int r_num[] = new int[3]; int u_num[] = new int[3]; boolean clear; // init(초기화) clear = false; // Random 1 ~ 10 -> 3" myRandom(r_num); clear = loop(r_num, u_num); result(clear); } public static void ..
[주제]- 생성자란 [중요]- 객체 초기화 시 메소드를 호출하기 때문에 프로그램 실행 시 최초로 1회만 실행- 동일한 이름의 메소드 사용이 가능하며, 리턴 값이 없음 [소스 코딩]■ Human.javapackage constructorClass; public class MyClass {/* * [constructor] 생성자 * 생성 시에 1회 호출 * - 다시 호출 불가능 * 클래스 이름과 동일한 메소드이며, 리턴 값이 없음 * - Over Load 가능 */ // 기본 생성자 MyClass() { System.out.println("MyClass 생성자 MyClass()"); } MyClass(char c) { System.out.println("MyClass 생성자 MyClass(char c)");..
[주제]- 객체 클래스 사용 방법, 접근 제어자 개념 [중요]- public: 다른 클래스에서도 사용. 외부에서 접근하여 값 변경도 가능- private: 현재 정의된 클래스 내에서만 사용- protected: 동일한 패키지 내에 있는 클래스끼리 사용 가능- 'this'는 인자로 받는 값과 동일한 이름을 가질 경우 사용 [소스 코딩]■ Human.java123456789101112131415161718192021222324252627282930313233343536373839404142434445464748package classTest; public class Human {/* * [member 변수] * public 설정: 다른 클래스에서도 접근 가능 * private 설정: 은닉성. Human 클래..
[주제]- 'BufferedReader' 클래스와 'readLine' 메소드 활용 [중요]- File 클래스는 오류 발생빈도가 많아 'try, catch' 내부에서 처리- 'BufferedReader' 클래스의 객체는 저장 공간이 사용되면 다시 사용할 수 없으므로 다시 초기화 필요- 'readLine' 메소드는 while문을 이용하여 사용 [소스 코딩]package fileClass3; import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException; public class mainClass { public static ..
[주제]- File 클래스의 각종 메소드들의 기능 [소스 코딩]package fileClass; import java.io.File;import java.io.IOException; public class mainClass { public static void main(String[] args) {/* * [파일] * - 저장해 놓을 문서 * ※ ex) txt */ // 'cdir'이 컴퓨터의 c드라이브를 가리킴 File cdir = new File("c:\\File Test\\"); String filelist[] = cdir.list(); // 'cdir'의 경로(c드라이브 - File Test폴더)에 있는 파일을 모두 출력 for (int i = 0; i
[주제]- try, catch 사용방식 [중요]- 오류를 검사하고, 오류 발생 시 처리에 대한 내용을 작성할 수 있음- 'catch'에 사용되는 'Exception' 클래스는 다양한 종류가 있지만 'Exception'만 작성해도 모든 것을 포함시킴- 'catch'가 2개 이상일 경우 해당 오류 종류에 맞는 '오류종류Eception'으로 작성하여 각각 대처 가능- 'finally'는 잘 사용되지 않음 [소스 코딩]package sample01; public class mainClass { public static void main(String[] args) {/* * [try catch] * try { * 오류 검사할 내용 * } catch(오류 클래스 이름 변수명) { * 내용 * } finally { ..
[주제]- 트럼프 카드 블랙잭 게임 구현 [중요]- 기존에 카드를 섞는 코드 활용- 기본 블랙잭 규칙에서 일부 변경하여 적용 [소스 코딩]/* * [게임 규칙] * * 공통 * - 유저와 딜러의 1:1 대결 * - 52장의 트럼프 카드를 사용(13장(A~K)씩 4묶음_ * ※ 문양(스페이드, 다이아몬드, 하트, 클로버)의 의미는 없음 * - 최초 기본 카드는 각각 2장을 배분 * - 'J, Q, K'는 10점으로 계산 * - 'A'는 '1점' 또는 '11점'으로 계산되는데, * '점수 > 21점 == 1점'으로 계산, '점수
[주제]- 이전에 구현한 '야구게임'의 소스코드를 영역 별로 나눠 메소드로 만들기 [중요]- 사용자에게 숫자를 입력 받는 메소드는 게임을 반복시키는 'loop' 메소드 안에서 사용 [소스 코딩]package baseballGameMethod; import java.util.Scanner; class baseballGameMethod { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int randNum[] = new int[3]; // 무작위로 결정된 숫자를 저장할 공간 while (true) { myRandom(randNum); result(loop(randNum, scan)); if (!reGame(sca..
[주제]- overload 메소드를 활용하여 2개의 정수 or 실수를 계산하는 계산기 구현 [중요]- 모든 문자는 문자열로 받았기 때문에 메소드에 인자로 보낼 때는 정수형 or 실수형으로 변환 필요 ※ Integer.parseInt(문자열): 문자열을 정수형으로 변환 ※ Double.parseDuble(문자열): 문자열을 실수형으로 변환 [소스 코딩]package calculatorMethod; import java.util.Scanner; class calculatorMethod { public static void main(String[] args) {/* * 1. 첫 번째 수 입력 * 2. 연산자 입력 * 3. 두 번째 수 입력 * ※ 모두 문자열로 입력 받음 * * [추가 구현] * 정수인지 실수..
[주제]- wrapper 클래스란 [중요]- 배열의 객체 생성 방법과 동일 [소스 코딩]package wrapper; class wrapper { public static void main(String[] args) {/* * [wrapper] * * 기본 자료형(char, boolean, byte, short, int, long, float, double)을 * 사용하기 편리하도록 '클래스화' 해놓은 것 * 클래스 오른쪽에 선언된 변수는 'object(객체) or instace(주체)'라고 함 * * char -> Character * boolean -> Boolean * byte -> Byte * shot -> Short * int -> Integer * long -> Long * float -> F..
[주제]- Over Load 개념, 사용 방식 [중요]- 같은 이름의 메소드를 인자 값만 다르게해서 다양하게 사용 가능- 이름이 같고 반환되는 자료형이 다르다고 해서 다른 걸로 인식하지 않음 [소스 코딩]package overload; class overload { public static void main(String[] args) {/* * Over Load * 같은 메소드 이름을 가진 메소드 * (인수, 인자, parameter)로 구분됨. * 자료형과 인수의 getter수로 구분됨. */ method(); method('A'); method(5); method('B', 10); method(15, 'C'); } public static void method(){ System.out.println(..
[주제]- 가변 인수란, 사용 방식 [중요]- 메소드의 인자가 2개 이상일 때 다른 인자보다 먼저(맨 왼쪽) 위치해 있으면 안됨- 작성 방식: '자료형...인자 이름' [소스 코딩]package methodClass3; class methodClass3 { public static void main(String[] args) { // 가변 인수 int r = disp1(1, 2, 3, 4, 5); System.out.println(r); disp1(1, 2, 3); disp2("world", 10, 15, 20); } public static int disp1(int...num){ System.out.println("disp1 호출"); int sum = 0; for (int i = 0; i
[주제]- 정렬 작업을 세 개의 영역으로 나눠서 메소드로 만들기 [중요]- 값을 저장하는 공간(배열 num)은 'input' 메소드 안에서 생성 및 초기화 작업이 이뤄짐- 반복되는 값 교체 과정은 두 번을 동일하게 사용하기 때문에 'swap' 메소드로 만듦 [소스 코딩]package sortMethod; import java.util.Scanner; class sortMethod { public static void main(String[] args) { // 정렬 값 초기화 및 입력 int updown[] = new int[1]; int num[] = input(updown); // 정렬 루프 sorting(num, updown[0]); // 결과 출력 sortPrint(num); } public st..
- Total
- Today
- Yesterday
- java
- 영어
- 자료구조
- ADODB
- 대상
- Delphi
- 일기
- tdataset
- Pte
- wfd
- 독해
- System
- 상황
- 문법
- 계산기
- 알고리즘
- VCL
- SysUtils
- 여행영어 100일의 기적
- 응용
- 스택
- 정렬
- 설명
- RA
- 교육센터
- 말하기
- 작문
- Reference
- 왕초보 영어회화 100일의 기적
- SWT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |