- 파일:
Ex1_print.java
System.out.println
을 사용하여 기본 출력을 소개합니다.- 주석, main 메서드, 다양한 출력 예제를 다룹니다.
- 파일:
Ex1_valueType.java
- 자바의 다양한 값 유형에 대한 설명, 변수 선언 및 초기화 규칙을 다룹니다.
- 파일:
Ex1_promotion.java
,Ex2_demotion.java
- 자바에서의 형 변환(promotion 및 demotion)을 탐색합니다.
- 다른 데이터 유형 간의 캐스팅을 설명합니다.
- 파일:
Ex1_Operator.java
,Ex2_Operator.java
,Ex3_Operator.java
,Ex4_work.java
,Ex5_work.java
- 다양한 연산자에 대해 설명하며, 산술, 대입, 비교, 논리 및 삼항 연산자를 포함합니다.
- 연산자와 관련된 실용적인 예제와 연습이 포함되어 있습니다.
- 파일:
Ex4_work.java
,Ex5_work.java
- 연산자와 변수 조작과 관련된 실전 연습이 포함되어 있습니다.
- 생산률과 과일 농장 시나리오와 관련된 문제를 해결합니다.
- 파일:
Ex1_if.java
- 제어문 중 분기문에 해당하는
if
문을 소개합니다. - 조건식의 참/거짓에 따라 실행되는 영역을 설명하고, 기본적인 사용법을 다룹니다.
- 파일:
Ex2_if_else.java
if-else
문을 활용하여 조건에 따라 다르게 처리하는 방법을 다룹니다.
- 파일:
Ex3_else_if.java
else-if
문을 사용하여 여러 조건을 순차적으로 검사하고 처리하는 방법을 소개합니다.
- 파일:
Ex1_switch.java
switch-case
문을 사용하여 비교값과 조건값을 통해 다양한 결과를 처리하는 방법을 설명합니다.
- 파일:
Ex2_switch.java
- 문자열을 비교값으로 사용하여
switch-case
문을 구성하는 방법을 소개합니다.
- 파일:
Ex3_switch.java
switch-case
문에서 문자(char)를 비교값으로 사용하는 방법을 다룹니다.
- 파일:
Ex4_work.java
switch-case
문을 활용하여 입력받은 월에 따라 해당 월의 일수를 출력하는 예제를 다룹니다.
- 파일:
Ex5_work.java
switch-case
문을 사용하여 간단한 두 숫자의 연산을 수행하는 계산기 예제를 다룹니다.
- 파일:
Ex1_for.java
for
문의 기본 구조와 다양한 활용 예제를 다룹니다.
- 파일:
Ex1_multi_for.java
- 다중
for
문의 기본 구조와 활용 예제를 다룹니다. 이 예제에서는 2차원 배열의 형태를 표현하고 출력하는 방법을 보여줍니다.
- 파일:
Ex1_formatter.java
printf
를 사용하여 데이터를 원하는 구조로 출력하는 포맷팅 예제를 다룹니다. 다양한 데이터 유형에 대한 포맷 코드를 사용하는 방법을 설명합니다.
- 파일:
Ex2_work.java
- 사용자가 입력한 값에 따라 해당하는 구구단을 출력하는 예제를 다룹니다. 입력 값이 2에서 9 사이의 값이 아닌 경우 예외 처리 메시지를 출력합니다.
- 파일:
Ex1_Random.java
Random
클래스를 사용하여 난수를 생성하는 방법을 다룹니다. 정수와 문자에 대한 난수 생성 예제를 포함합니다.
- 파일:
Ex1_while.java
while
문의 기본 구조와 간단한 활용 예제를 다룹니다. 선 비교 후 처리하는 특징과 무한 반복을 방지하기 위한num
의 증가 예제가 포함되어 있습니다.
do {
// 조건식이 참일 때 실행되는 영역
} while(조건식);
do-while
문은 먼저 영역을 실행한 후에 조건식을 평가합니다.- 최소 한 번은 영역이 실행된다는 특징이 있습니다.
- 파일:
Ex8_work
- 내용: 별찍기 문제를 해결하여 for문에 대한 이해를 쌓았습니다. 해당 파일에서는 다양한 별찍기 패턴을 구현하는 연습을 진행했습니다.
- 파일:
Ex9_2work
- 내용: 2중 for문을 사용하여 1부터 n까지의 합계를 계산하는 문제를 다루었습니다. 이를 통해 중첩된 반복문을 활용하는 방법에 대해 학습했습니다.
- 파일:
Ex1_Break
- 내용: break 문을 활용하여 반복문을 탈출하는 방법에 대한 학습이 포함되어 있습니다.
- 파일:
Ex2_Break
- 내용: switch 문과 break를 연동하여 사용하는 방법에 대한 학습이 담겨 있습니다.
- 파일:
Ex3_Continue
- 내용: Continue 문에 대한 학습 내용이 포함되어 있습니다.
- 파일:
Ex4_Continue
- 내용: while문과 Continue 문을 혼합해서 사용하는 방법에 대해 다루었습니다.
- 파일:
Ex5_label
- 내용: 반복문에 식별자를 지정하는 방법에 대한 학습이 포함되어 있습니다.
- 파일:
Ex6_label
- 내용: Continue 문과 식별자를 혼합해서 사용하는 방법에 대한 학습이 담겨 있습니다.
- 파일:
Ex1_Scanner
- 내용: 키보드에서 값을 입력 받을 수 있게 해주는 Scanner 클래스에 대한 학습이 포함되어 있습니다.
- 파일:
Ex2_work
- 내용: Scanner 클래스를 활용하여 변수값들을 비교하는 방법에 대한 학습 내용이 담겨 있습니다.
- 파일:
Ex1_array
- 내용: 배열에 대한 학습 내용이 포함되어 있습니다.
- 파일:
Ex1_work
- 내용: 배열에 대한 선언과 생성을 한번에 하는 방법에 대한 학습이 담겨 있습니다.
- 파일:
Ex2_work
- 내용: 배열을 활용하여 최대값을 구하는 방법에 대한 학습 내용이 포함되어 있습니다.
- 파일:
Ex3_work
- 내용: 배열을 활용하여 소수를 판단하는 방법에 대한 학습이 포함되어 있습니다.
- 파일:
Ex4_work
- 내용: 배열을 활용하여 구구단을 구현하는 방법에 대한 학습이 담겨 있습니다.
- 파일:
Ex1_Baseball
- 내용: 숫자 야구 게임을 구현하는 방법에 대한 학습이 담겨 있습니다.
- 파일:
Ex1_coin
- 내용: 거스름돈을 계산하는 로직에 대한 학습이 담겨 있습니다.
- 파일:
Ex1_baseball
- 내용: 배열을 활용하여 숫자 야구 게임을 리팩토링하는 내용이 담겨 있습니다.
- 파일:
Ex2_lotto
- 내용: 배열을 활용하여 로또 게임을 구현하는 방법에 대한 학습이 담겨 있습니다.
-
배열 초기화:
int[][] test = new int[2][3];
이 코드는 2행 3열로 구성된
test
라는 2차원 배열을 선언하고 초기화합니다. -
값 할당:
test[0][0] = 10; test[0][1] = 20; test[0][2] = 30; test[1][0] = 40; test[1][1] = 50; test[1][2] = 60;
2차원 배열의 각 요소에 값을 할당합니다.
-
특정 값에 접근 및 출력:
System.out.println(test[1][1]);
지정된 인덱스
[1][1]
의 값을 출력합니다. -
중첩된 루프를 사용한 모든 값 출력:
for (int i = 0; i < test.length; i++) { for (int j = 0; j < test[i].length; j++) { System.out.printf("%d ", test[i][j]); } System.out.println(); }
이 Java 파일은 2차원 배열의 선언, 생성, 초기화를 한 번에 수행하는 예제입니다. 아래는 각 부분에 대한 설명입니다:
-
배열 선언 및 초기화:
char[][] chArr = {{'J', 'A', 'V', 'A'}, {'S','P', 'R', 'I', 'N','G'}};
chArr
이라는 2차원 배열을 선언하고 초기화합니다. -
모든 값 출력:
for (int i = 0; i < chArr.length; i++) { for (int j = 0; j < chArr[i].length; j++) { System.out.printf("%c ", chArr[i][j]); } System.out.println(); }
이 Java 파일은 가변적인 크기의 2차원 배열을 생성하는 예제입니다. 아래는 각 부분에 대한 설명입니다:
-
가변 크기의 2차원 배열 선언 및 초기화:
int[][] num = new int[2][]; num[0] = new int[3]; num[1] = new int[2];
큰 방(행) 중 하나에는 3개의 작은 방(열)이 있고, 다른 하나에는 2개의 작은 방이 있는 2차원 배열을 선언하고 초기화합니다.
-
모든 값 출력:
for (int i = 0; i < num.length; i++) { for (int j = 0; j < num[i].length; j++) { System.out.printf("%d ", num[i][j]); } System.out.println(); }
이 Java 파일은 2차원 배열에 저장된 모든 값의 합과 평균을 출력하는 예제입니다. 아래는 각 부분에 대한 설명입니다:
-
배열 초기화 및 값 합산:
int[][] arr = { { 2, 4, 11, 28 }, { 5, 7, 10 }, { 12, 17, 3, 6 }, { 3, 2 } };
arr
이라는 2차원 배열을 선언하고 초기화하고, 배열에 저장된 모든 값의 합을 계산합니다. -
평균 계산 및 출력:
avg = (float) sum / k; System.out.printf("평균 : %.1f ", avg);
저장된 값들의 평균을 계산하고 출력합니다.
이 Java 파일은 학생들의 정보를 등록하고 출력하는 예제입니다. 아래는 각 부분에 대한 설명입니다:
-
학생 정보 등록 및 출력:
Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // 등록할 인원 수 입력 String[] info = {"이름: ", "수학: ", "영어: "}; String[][] str = new String[n][info.length]; for (int i = 0; i < str.length; i++) { for (int j = 0; j < str[i].length; j++) { System.out.print(info[j]); str[i][j] = sc.next(); } System.out.println("----------------------------------"); } System.out.println(n + "명 등록완료!!"); for (int i = 0; i < str.length; i++) { for (int j = 0; j < str[i].length; j++) { System.out.printf("%s\t", str[i][j]); } System.out.println(); }
키보드에서 학생의 수와 각 학생의 이름, 수학, 영어 성적을 입력받고 출력합니다.
이 Java 파일은 피보나치 수열을 입력받은 값만큼 출력하는 예제입니다. 아래는 각 부분에 대한 설명입니다:
-
피보나치 수열 출력:
Scanner sc = new Scanner(System.in); int num = sc.nextInt(); int[] arr = new int[num]; int n1 = 1, n2 = 0, n3 = 0; for (int i = 0; i < arr.length; i++) { n2 = n3; n3 = n1; n1 = n2 + n3; System.out.printf("%d ", n3); }
입력
받은 값만큼 피보나치 수열을 계산하고 출력합니다.
이 Java 파일은 주어진 크기만큼의 홀수 마방진을 생성하는 예제입니다. 아래는 각 부분에 대한 설명입니다:
-
홀수 마방진 생성 및 출력:
Scanner sc = new Scanner(System.in); int[][] arr; int num = 1, y = 0, x = 0; System.out.print("사이즈: "); int size = sc.nextInt(); x = size / 2; arr = new int[size][size]; while (num <= size * size) { arr[y][x] = num; // ... 중략 ... num++; } for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { System.out.printf("%02d ", arr[i][j]); } System.out.println(); }
주어진 크기의 홀수 마방진을 생성하고 출력합니다.
-
문자열 생성:
String s1 = "abc"; String s2 = "abc"; String s3 = new String("abc"); String s4 = new String("abc");
문자열을 암시적 및 명시적으로 생성하는 예제입니다.
-
주소 비교 및 값 비교:
if (s1 == s3) { System.out.println("주소가 같다."); } else { System.out.println("주소가 다릅니다."); } if (s1.equals(s3)) { System.out.println("값이 같습니다."); }
==
를 사용하여 주소를 비교하고,.equals()
를 사용하여 문자열의 값을 비교하는 예제입니다. -
불변성과 값 변경:
String greet = "안녕"; greet += "하세요";
문자열은 불변성을 가지며, 값을 변경하면 새로운 문자열이 생성됩니다.
이 Java 파일은 String
클래스의 다양한 메서드를 사용하는 예제입니다.
-
문자열 길이 및 문자 위치:
int len = name.length(); int index = name.indexOf('o'); int lastIndex = name.lastIndexOf('o'); char c = name.charAt(5);
문자열의 길이, 특정 문자의 위치 및 마지막으로 나타난 문자의 위치를 구하는 예제입니다.
-
부분 문자열 추출:
String s1 = name.substring(5); String s2 = name.substring(5, 10);
문자열에서 일부분을 추출하는 예제입니다.
-
문자열 대체:
String replaced1 = name.replace('.', '/'); String replaced2 = name.replace("on", "ii");
문자열 내의 특정 문자를 대체하는 예제입니다.
-
공백 제거 및 문자열 분할:
String trimmed = id.trim(); String[] idArray = id.split(" ");
문자열의 양 끝 공백을 제거하고, 특정 문자를 기준으로 분할하는 예제입니다.
-
대소문자 비교 및 정수 변환:
if (answer.equalsIgnoreCase("apple")) { System.out.println("값이 같다"); } String num = "10"; int a = Integer.parseInt(num);
대소문자를 무시한 비교 및 문자열을 정수로 변환하는 예제입니다.
이 Java 파일은 주민번호를 입력받아 남성 또는 여성인지 출력하는 예제입니다.
이 Java 파일은 사용자로부터 문자열을 입력받고, 그 문자열에서 'a'의 개수를 출력하는 예제입니다.
이 Java 파일은 주어진 문자열이 회문수인지 판단하는 예제입니다.
이 Java 파일은 2차원 배열을 활용하여 배우의 이력을 검색하는 예제입니다.
-
Computer.java:
Computer
클래스를 정의하며, 컴퓨터의 브랜드, SSD 용량, RAM 용량, CPU 속도, 색상 등의 속성을 나타냅니다.getInfo
메서드를 통해 컴퓨터의 성능 정보를 출력합니다.brand
속성은 private으로 선언하여 외부에서 직접 접근하지 못하도록 캡슐화를 시연합니다.
-
comMain.java:
Computer
클래스를 테스트하는main
메서드를 정의합니다.Computer
클래스의 인스턴스를 생성하고, 정보를 출력하며 클래스 간의 상호작용을 보여줍니다.
-
Chicken.java:
Chicken
클래스를 정의하며, 치킨의 브랜드, 고기 종류, 소스 등의 속성을 나타냅니다.myChicken
메서드를 통해 치킨 정보를 출력합니다.
-
ChickenMain.java:
Chicken
클래스의 다형성을 보여주는main
메서드를 정의합니다.- 다른 소스로 각각의 치킨을 생성하여 정보를 출력합니다.
-
Method1.java:
Method1
클래스를 정의하며, 간단한 메서드들을 포함합니다.test1
,test2
,test3
메서드를 통해 메서드의 기본 구성과 반환값을 설명합니다.
-
MetMain.java:
Method1
클래스의 메서드를 호출하여 실행하는main
메서드를 정의합니다.
-
Ex1_param.java:
Ex1_param
클래스를 정의하며, 메서드에 다양한 형태의 매개변수를 전달하는 예시를 제공합니다.
-
Ex1_paramMain.java:
Ex1_param
클래스의 메서드를 호출하여 매개변수 전달의 특성을 확인하는main
메서드를 정의합니다.
-
VMethod.java:
- 가변인자를 사용하는
v_test
메서드를 정의하여 여러 개의 매개변수를 다루는 방법을 보여줍니다.
- 가변인자를 사용하는
-
VMain.java:
VMethod
클래스의 가변인자 메서드를 호출하여 다양한 개수의 매개변수를 다루는main
메서드를 정의합니다.
-
Gugu.java:
- 구구단을 출력하는
getGugudan
메서드를 정의합니다.
- 구구단을 출력하는
-
GuguMain.java:
- 사용자로부터 입력받은 숫자에 대한 구구단을 출력하는
main
메서드를 정의합니다.
- 사용자로부터 입력받은 숫자에 대한 구구단을 출력하는
-
Calculator.java:
- 간단한 사칙연산을 수행하는
getResult
메서드를 정의합니다.
- 간단한 사칙연산을 수행하는
-
CalMain.java:
- 사용자로부터 입력받은 숫자와 연산자를 통해 계산 결과를 출력하는
main
메서드를 정의합니다.
- 사용자로부터 입력받은 숫자와 연산자를 통해 계산 결과를 출력하는
-
Count.java:
- 배열을 이용하여 숫자의 갯수를 세는
getCount
메서드를 정의합니다.
- 배열을 이용하여 숫자의 갯수를 세는
-
GraphMain.java:
- 난수 배열을 생성하고
Count
클래스의 메서드를 호출하여 각 숫자의 갯수를 출력하는main
메서드를 정의합니다.
- 난수 배열을 생성하고
-
Person.java (ex1_setter_getter):
Person
클래스는 이름(name
), 전화번호(phone
), 나이(age
)를 private 멤버로 가지며, 이에 대한 setter와 getter 메서드를 제공합니다.- 클래스 외부에서는 직접적인 접근이 불가능하고, setter 메서드를 통해 값을 설정하거나, getter 메서드를 통해 값을 조회할 수 있습니다.
-
PersonMain.java (ex1_setter_getter):
Person
클래스의 객체를 생성하고, setter 메서드를 이용하여 값을 설정하고, getter 메서드를 통해 값을 조회하는 예시를 보여줍니다.
-
Person.java (ex2_class_array):
Person
클래스는 이름(name
)과 나이(age
)를 private 멤버로 가지며, 이에 대한 setter와 getter 메서드를 제공합니다.
-
PersonMain.java (ex2_class_array):
Person
클래스의 객체 배열을 생성하고, 반복문을 사용하여 배열의 각 요소에 대한 setter 메서드를 호출하여 값을 설정합니다.
-
Atm.java (ex3_account):
Atm
클래스는 입금(deposit
), 출금(withdraw
), 잔액 조회(showMoney
) 메서드를 가지며, 잔액은 private으로 관리됩니다.
-
User.java (ex3_account):
Atm
클래스를 이용하여 사용자에게 메뉴를 제공하고, 사용자의 입력에 따라 입금, 출금, 잔액 조회 기능을 수행하는 예시를 보여줍니다.
-
Updown.java (ex4_work):
Updown
클래스는 1에서 50 사이의 난수를 생성하고, 사용자가 입력한 수가 더 큰지, 작은지 판단하여 UP 또는 DOWN 메시지를 출력합니다.- 정답을 맞추면 시도 횟수를 출력하고,
isEnd
변수를 통해 게임 종료 여부를 확인합니다.
-
UpdownMain.java (ex4_work):
Updown
클래스를 이용하여 UP&DOWN 게임을 실행하는 예시를 보여줍니다. 사용자가 정답을 맞추면 게임이 종료됩니다.
-
Can.java (ex5_work):
Can
클래스는 음료수의 이름(canName
)과 가격(price
)을 가지며, 이에 대한 setter와 getter 메서드를 제공합니다.
-
Vending.java (ex5_work):
Vending
클래스는 음료수 배열과 사용자의 투입금액을 관리합니다.canInit
메서드를 통해 음료수 배열을 초기화하고,showCans
메서드를 통해 투입금액으로 살 수 있는 음료수 목록을 출력합니다.outCan
메서드를 통해 사용자가 선택한 음료수를 제공하고, 잔액을 반환합니다.
-
VendingMain.java (ex5_work):
Vending
클래스를 이용하여 사용자에게 음료수를 제공하는 자판기 프로그램의 예시를 보여줍니다.
ex1_overload 패키지:
-
Ex1_Overload.java:
- 메서드 오버로딩을 설명합니다.
- 동일한 이름(
result
)의 여러 메서드를 정의하며, 각 메서드는 다른 매개변수 유형 및 개수를 가집니다. - 각각의
result
메서드는 다양한 인자 유형에 대응합니다.
-
OverMain.java:
Ex1_Overload
의 인스턴스를 생성하고 여러 오버로딩된result
메서드를 호출합니다.- 다양한 인자로
result
메서드를 호출하여 오버로딩이 잘 동작하는지 보여줍니다.
ex2_overload 패키지:
-
Bread.java:
makeBread
메서드를 오버로딩하여 여러 가지 매개변수 조합에 대응합니다.
-
BreadMain.java:
Bread
클래스의 인스턴스를 생성하고 다양한 방법으로makeBread
메서드를 호출하여 오버로딩이 잘 동작하는지 보여줍니다.
ex3_constructor 패키지:
-
Ex_Con.java:
- 생성자를 소개하며, 객체 생성 시 메모리 할당 및 멤버 변수 초기화의 목적으로 사용된다고 설명합니다.
- 생성자는 클래스 이름과 동일하며, 한 번 생성된 생성자는 추후에 재 호출이 불가능하다고 설명합니다.
-
ConMain.java:
Ex_Con
클래스의 인스턴스를 생성하여 생성자 호출을 보여줍니다.
ex4_constructor 패키지:
-
Pen.java:
- 생성자를 사용하여
Pen
클래스를 정의합니다. - 오버로딩된 생성자를 이용하여 다양한 방법으로
Pen
객체를 초기화합니다.
- 생성자를 사용하여
-
PenMain.java:
Pen
클래스의 다양한 생성자로 객체를 초기화하고 결과를 출력합니다.
ex5_constructor 패키지:
-
Person.java:
- 생성자를 사용하여
Person
클래스를 정의합니다. - 이름과 나이를 매개변수로 받는 생성자를 사용하여 객체를 초기화합니다.
- 생성자를 사용하여
-
PMain.java:
Person
클래스의 인스턴스를 생성하고 생성자를 이용하여 초기화합니다.
ex6_static 패키지:
-
Bank.java:
Bank
클래스에서static
변수interest
를 사용하여 이자율을 표현합니다.static
변수는 클래스당 딱 한 개만 만들어지며, 객체가 아무리 많이 생성되어도 동일한interest
값을 공유합니다.
-
BankMain.java:
Bank
클래스의 여러 인스턴스를 생성하고static
변수인interest
값을 변경하여 결과를 출력합니다.
-
Ex1_StaticTest.java:
static
변수와 일반 멤버 변수의 차이를 설명하고, 각각의 특징을 보여주는 클래스입니다.
ex1_vending 패키지:
-
Can.java:
Can
클래스를 정의하며, 음료수의 이름과 가격을 나타내는 멤버 변수를 가지고 있습니다.
-
VenMain.java:
VenMain
클래스는 자판기 프로그램의 메인 클래스입니다.- 사용자에게 돈을 입력받고, 자판기에서 제공하는 음료수 목록을 보여주는 등의 동작을 수행합니다.
-
Vending.java:
Vending
클래스는 자판기를 나타내며, 음료수 배열과 사용자에게 투입된 돈을 관리합니다.- 사용자에게 투입된 금액 범위 내의 음료수 목록을 출력하는
showCans
메서드와 음료수를 제공하고 잔액을 반환하는outCan
메서드를 구현합니다.
ex2_inheritance 패키지:
-
Child.java:
Parent
클래스를 상속받는Child
클래스를 정의하며,car
라는 자식 클래스의 속성을 추가합니다.
-
ExtendsMain.java:
ExtendsMain
클래스는 상속 관계를 보여주는 메인 클래스입니다.Child
클래스의 인스턴스를 생성하여 부모 클래스인Parent
의 속성과 자식 클래스의 속성을 출력합니다.
-
Parent.java:
Parent
클래스를 정의하며,money
와str
라는 속성을 가지고 있습니다.
ex3_override 패키지:
-
Animal.java:
Animal
클래스를 정의하며,eye
와leg
라는 속성을 가지고 있습니다.
-
AnimalMain.java:
- 다양한 동물 클래스(
Bear
,Lion
,Elephant
,Snake
)의 인스턴스를 생성하여 속성을 출력하는 메인 클래스입니다.
- 다양한 동물 클래스(
-
Bear.java, Elephant.java, Lion.java, Snake.java:
- 각각의 동물 클래스를 정의하며,
Animal
클래스를 상속받습니다. - 동물의 특징을 나타내는 속성을 추가하고,
Snake
클래스에서는getLeg
메서드를 오버라이드하여 다리 개수를 0으로 설정합니다.
- 각각의 동물 클래스를 정의하며,
ex4_override 패키지:
-
CalMain.java:
Calculator
클래스와 이를 상속받은CalPlus
와CalMinus
클래스를 사용하여 덧셈과 뺄셈을 수행하는 메인 클래스입니다.
-
CalPlus.java, CalMinus.java, Calculator.java:
- 각각의 클래스를 정의하며,
CalPlus
와CalMinus
는Calculator
클래스를 상속받아 덧셈과 뺄셈을 구현합니다.
- 각각의 클래스를 정의하며,
ex5_super 패키지:
- Child.java, Parent.java, SuperMain.java:
Parent
클래스를 상속받는Child
클래스와 이를 테스트하는SuperMain
클래스를 정의합니다.super
키워드를 사용하여 부모 클래스의 생성자와 메서드를 호출하는 예제를 보여줍니다.
ex6_generic 패키지:
- GenEx.java, GenMain.java:
- 제네릭 클래스
GenEx
와 이를 활용하는 메인 클래스GenMain
을 정의합니다. - 제네릭을 사용하여 다양한 타입의 데이터를 다룰 수 있는 클래스를 구현합니다.
- 제네릭 클래스
ex1_work 패키지:
-
Work.java:
Work
클래스에는 알파벳 및 숫자에 대한 코드 배열을 기반으로 주어진 문자열을 암호화하는setEnc
메서드가 있습니다.
-
WorkMain.java:
WorkMain
클래스는Work
클래스를 사용하여 미리 정의된 코드 배열을 사용하여 문자열을 암호화하는 사용 예시를 보여줍니다.
ex2_abstract 패키지:
-
AbsChild.java:
AbsChild
는 추상 클래스AbsEx
의 하위 클래스이며 추상 메서드setValue
에 대한 구현을 제공합니다.
-
AbsEx.java:
AbsEx
는 추상 메서드setValue
와 일부 일반 필드를 포함하는 추상 클래스입니다.
-
AbsMain.java:
AbsMain
클래스는AbsChild
클래스의 인스턴스화 및 오버라이드된 메서드 호출을 보여줍니다.
ex3_abstract 패키지:
-
Protoss.java, Terran.java, Zerg.java:
- 추상 클래스
Unit
를 확장하고 추상 메서드decEnergy
에 대한 구현을 제공하는 서로 다른 유닛 유형을 나타내는 클래스입니다.
- 추상 클래스
-
Unit.java:
Unit
추상 클래스는 다양한 유닛 유형에 대한 공통 속성을 정의하며 추상 메서드decEnergy
를 포함합니다.
-
UnitMain.java:
- 다양한 유닛 클래스 및 그들의 에너지 소비를 사용하는 방법을 보여주는 예시입니다.
ex4_interface 패키지:
-
InterChild.java:
InterTest
인터페이스를 구현하고 추상 메서드getVALUE
에 대한 구현을 제공합니다.
-
InterMain.java:
InterChild
클래스의 인스턴스화 및 해당 메서드 호출을 보여주는 예시입니다.
-
InterTest.java:
- 상수
VALUE
와 추상 메서드getVALUE
를 포함하는InterTest
인터페이스를 정의합니다.
- 상수
ex5_interface 패키지:
-
AllMenu.java:
- 세 개의 다른 인터페이스 (
Menu1
,Menu2
,Menu3
)를 확장하고 새로운 메서드raJogi
를 소개하는 인터페이스입니다.
- 세 개의 다른 인터페이스 (
-
ExMain.java:
Kitchen
클래스를 인스턴스화하고 해당 메서드를 호출하는 예시입니다.
ex1_work 패키지:
-
WordGameMain.java:
WordGameMain
클래스는WordScramble
클래스를 사용하여 단어 섞기 게임을 실행하는 예시를 보여줍니다.
-
WordScramble.java:
WordScramble
클래스에는 단어 배열과 단어를 섞는 메서드가 정의되어 있습니다.
ex2_exception 패키지:
-
Ex1_TryCatch.java:
try-catch
구문을 사용하여 예외 처리하는 예시를 보여줍니다.
-
Ex2_TryCatch.java:
- 배열 인덱스 초과 예외를 처리하는 예시를 보여줍니다.
-
Ex3_TryCatch.java:
- 키보드에서 입력 받은 값이 정수인지 확인하는 예시를 보여줍니다.
ex3_thread 패키지:
- ThreadEx.java, ThreadMain.java:
- 기본적인 스레드 생성 및 실행 예시를 보여줍니다.
ex4_multi_thread 패키지:
- T1.java, T2.java, TMain.java:
- 두 개의 스레드를 생성하여 각각의 스레드에서 1 또는 2를 출력하는 예시를 보여줍니다.
ex5_thread 패키지:
- T1.java, TMain.java:
- 특정 숫자부터 0까지 1초에 한 번씩 카운트 다운하는 스레드를 생성하는 예시를 보여줍니다.
ex6_exception_work 패키지:
- Work.java:
- 키보드에서 입력 받은 값이 정수인지 확인하는 예시를 보여줍니다.
ex7_thread_work 패키지:
- Work.java, WorkMain.java:
- 1부터 100 사이의 난수를 생성하여 두 숫자를 더하는 문제를 출제하고, 키보드에서 사용자의 답을 입력받아 맞히는 게임을 실행하는 예시를 보여줍니다.
ex8_runnable 패키지:
- T1.java, TMain.java:
Runnable
인터페이스를 구현하여 스레드를 생성하는 예시를 보여줍니다.
ex1_set 패키지:
-
Ex1_Set.java:
HashSet
을 사용하여 중복을 허용하지 않는 집합을 만들고, 기본적인 집합 관련 메서드를 사용하는 예시입니다.
-
Ex2_Set.java:
- 난수를 이용하여 중복을 허용하지 않는
HashSet
과 중복을 허용하지 않으면서 정렬된TreeSet
을 생성하는 예시입니다.
- 난수를 이용하여 중복을 허용하지 않는
ex2_map 패키지:
-
Ex1_Map.java:
HashMap
을 사용하여 키-값 쌍을 저장하고, 특정 키를 통해 값을 조회하며 기본적인 맵 관련 메서드를 사용하는 예시입니다.
-
Ex2_Map.java:
- 문자열 키와 문자 값을 저장하는
HashMap
을 만들고, 맵의 값을 배열로 변환하여 사용하는 예시입니다.
- 문자열 키와 문자 값을 저장하는
ex3_work 패키지:
- WorkMain.java:
- 키보드로부터 입력을 받아 정수인지 판별하는 예시입니다.
ex4_map_work 패키지:
- MapWork.java:
- 아이디와 비밀번호를 저장하고 로그인을 시도하는 예시입니다.
ex1_list 패키지:
-
Ex1_ArrayList.java:
ArrayList
을 사용하여 정수를 저장하고 관리하는 예시입니다. 특정 인덱스에 값을 추가, 수정, 삭제하는 등의 기능을 보여줍니다.
-
Ex2_ArrayList.java:
ArrayList
을 사용하여 문자열을 저장하고 관리하는 예시입니다. 특정 인덱스에 값을 추가, 수정, 삭제하는 등의 기능을 보여줍니다.
-
Ex3_ArrayList.java:
ArrayList
을 사용하여 중복된 문자열을 피하면서 사용자 입력을 받는 예시입니다. 중복 체크를 위해contains
메서드를 활용합니다.
-
Ex4_ArrayClass.java:
ArrayList
을 다루는 클래스Ex4_ArrayClass
를 정의한 후, 이를 활용하는 예시입니다.setArr
메서드를 통해ArrayList
에 값이 추가되고, 이를 메인에서 출력합니다.
-
Ex4_ArrayList.java:
Ex4_ArrayClass
를 사용하여ArrayList
에 값을 추가하고, 메인에서 해당ArrayList
를 출력하는 예시입니다.
ex2_list 패키지:
-
User.java:
- 사용자 정보를 담는
User
클래스입니다. 이름과 나이를 private 필드로 갖고 있으며, 각각의 Getter 및 Setter 메서드를 제공합니다.
- 사용자 정보를 담는
-
UserMain.java:
User
클래스를 사용하여 사용자의 이름과 나이를 입력받고, 중복된 이름을 체크하여 리스트에 추가하는 예시입니다.
ex3_io_file 패키지:
-
Ex1_File.java:
- 파일 및 IO 개념에 대한 기본적인 내용을 다루는 예시입니다. 파일 객체를 생성하고, 해당 파일이 존재하면 파일의 크기를 출력합니다.
-
Ex2_File.java:
- 폴더 내의 파일 목록을 출력하는 예시입니다.
-
Ex3_File.java:
- 폴더가 존재하지 않으면 생성하는 예시입니다.
-
Ex4_File.java:
- 특정 폴더의 하위 목록 중 폴더만 출력하는 예시입니다.
work 패키지:
-
WordGame.java:
- 스레드를 사용하여 일정 시간 간격으로 단어를 리스트에 추가하는 예시입니다.
-
WordGameMain.java:
WordGame
스레드를 실행하고, 사용자에게 단어를 입력받아 리스트에서 제거하는 게임을 구현한 예시입니다.
ex1_file_input 패키지:
-
Ex1_FileInput.java:
FileInputStream
을 사용하여 파일을 읽어오는 예시입니다. 파일이 존재하면 파일의 내용을 1바이트씩 읽어 화면에 출력합니다.
-
Ex2_FileInput.java:
FileInputStream
을 사용하여 파일을 읽어오는 예시입니다. 파일의 내용을 한 번에 읽어byte
배열에 저장하고, 이를String
으로 변환하여 출력합니다.
ex2_input 패키지:
- Ex1_FileInput.java:
System.in.read()
를 사용하여 키보드 입력을 받는 예시입니다. 입력 받은 값을byte
배열에 저장하고, 이를String
으로 변환하여 출력합니다.
ex3_buffered_input 패키지:
- Ex1_BufferedInput.java:
BufferedInputStream
을 사용하여 파일을 읽어오는 예시입니다. 파일의 내용을 한 번에 읽어byte
배열에 저장하고, 이를String
으로 변환하여 출력합니다.BufferedInputStream
을 사용하여 입출력 성능을 향상시킵니다.
util 패키지:
- MyPath.java:
- 상수
PATH
를 정의한 인터페이스입니다. 파일 경로를 관리하는 데 사용됩니다.
- 상수
ex1_output 패키지:
-
Ex1_output.java:
System.out
을 사용하여 콘솔에 데이터를 출력하는 예시입니다.PrintStream
을 통해 'A'를 출력하고,byte
배열을 사용하여 'B', 'C', 'D'를 출력합니다.
-
Ex2_FileOutput.java:
FileOutputStream
을 사용하여 파일에 데이터를 출력하는 예시입니다. 파일 경로에 "fileOutput예제.txt" 파일을 생성하고, 문자열을 바이트로 변환하여 파일에 기록합니다.
-
Ex3_BufferedFileOutput.java:
BufferedOutputStream
을 사용하여 파일에 데이터를 출력하는 예시입니다. "bos의 예제.txt" 파일에 "buffered스트림의 예제." 문자열을 기록하고,flush()
메서드로 버퍼의 내용을 물리적으로 기록합니다.
ex2_char_input 패키지:
-
Ex1_FileReader.java:
FileReader
를 사용하여 파일을 읽어오는 예시입니다. "test.txt" 파일의 내용을 읽어와서 콘솔에 출력합니다.
-
Ex2_BufferedReader.java:
BufferedReader
를 사용하여 파일을 읽어오는 예시입니다. "test.txt" 파일의 내용을 한 줄씩 읽어와서 콘솔에 출력합니다.
ex3_char_output 패키지:
-
Ex1_FileWriter.java:
FileWriter
를 사용하여 파일에 데이터를 출력하는 예시입니다. "fileWriter의 예제.txt" 파일에 문자열을 기록합니다.
-
Ex2_BufferedWriter.java:
BufferedWriter
를 사용하여 파일에 데이터를 출력하는 예시입니다. "bufferedWriter의 예제.txt" 파일에 문자열을 기록하고,newLine()
메서드로 새로운 줄을 추가합니다.
ex4_object_input 패키지:
- ObjectInputMain.java:
ObjectInputStream
을 사용하여 객체를 파일에서 읽어오는 예시입니다. "person.sav" 파일에서Person
객체를 읽어와서 객체의 정보를 출력합니다.
ex5_object_output 패키지:
- ObjectWriterMain.java:
ObjectOutputStream
을 사용하여 객체를 파일에 저장하는 예시입니다. "person.sav" 파일에Person
객체를 저장합니다.
ex6_base64 패키지:
- Base64_main.java:
- Java의
Base64
클래스를 사용하여 문자열을 암호화하고 복호화하는 예시입니다.
- Java의
ex7_work 패키지:
-
ByteStreamWork.java:
FileInputStream
을 사용하여 파일을 읽어오고, 회문수 여부를 판단하는 예시입니다.
-
CharStreamWork.java:
FileReader
를 사용하여 파일을 읽어오고, 대문자와 소문자의 갯수를 세는 예시입니다.
ex8_work 패키지:
-
GameLoad.java:
ObjectInputStream
을 사용하여 게임 데이터를 파일에서 읽어오는 예시입니다.
-
GameSave.java:
ObjectOutputStream
을 사용하여 게임 데이터를 파일에 저장하는 예시입니다.
-
Rsp.java:
- 게임 결과를 저장하는
Rsp
클래스입니다. 이 클래스는Serializable
을 구현하여 객체를 직렬화할 수 있게 합니다.
- 게임 결과를 저장하는
-
RspMain.java:
- 가위바위보 게임을 구현한 메인 클래스입니다. 사용자와 컴퓨터 간의 게임을 진행하고, 결과를 저장하고 불러오는 기능이 구현되어 있습니다.
-
파일 입출력 (File I/O)
Ex1_output
:System.out
을 사용하여 콘솔에 데이터를 출력하는 예제 및 파일에 데이터를 출력하는 예제가 포함되어 있습니다.Ex2_FileOutput
:FileOutputStream
을 사용하여 파일에 데이터를 출력하는 예제입니다.Ex3_BufferedFileOutput
:BufferedOutputStream
을 사용하여 파일에 데이터를 출력하는 예제입니다.Ex1_FileReader
:FileReader
를 사용하여 파일에서 문자를 읽어오는 예제입니다.Ex2_BufferedReader
:BufferedReader
를 사용하여 파일에서 한 줄씩 읽어오는 예제입니다.Ex1_FileWriter
:FileWriter
를 사용하여 파일에 문자열을 쓰는 예제입니다.Ex2_BufferedWriter
:BufferedWriter
를 사용하여 파일에 문자열을 쓰는 예제입니다.
-
객체 직렬화 (Object Serialization)
ObjectInputMain
: 객체를 파일에 저장하고 읽어오는 예제입니다.ObjectWriterMain
:ObjectOutputStream
을 사용하여 객체를 파일에 저장하는 예제입니다.Person
:Serializable
을 구현한 객체 클래스로, 객체 직렬화를 위한 예제입니다.
-
Base64 인코딩/디코딩
Base64_main
: Java의Base64
클래스를 사용하여 문자열을 인코딩하고 디코딩하는 예제입니다.
-
문제 해결 및 실습
ByteStreamWork
: 파일에서 데이터를 읽어와 회문수인지 확인하는 예제입니다.CharStreamWork
: 파일에서 대문자와 소문자의 개수를 세는 예제입니다.GameSave
및GameLoad
: 객체를 파일에 저장하고 불러오는 예제로, 가위바위보 게임의 결과를 저장합니다.Rsp
,RspMain
: 간단한 가위바위보 게임의 결과를 저장하고 불러오는 예제입니다.
-
네트워크 통신
MyClient
및MyServer
: 간단한 클라이언트-서버 통신 예제입니다. 클라이언트가 서버에 접속하면 서버에서 클라이언트의 IP 주소를 출력합니다.
-
윈도우 프레임 및 리스너
Ex1_frame
,MyFrame
,MyFrameMain
: AWT를 사용하여 윈도우 프레임을 생성하는 예제입니다.FrameMain
: AWT를 사용하여 윈도우 프레임을 생성하고, 윈도우 이벤트를 감지하는 예제입니다.MyListener
,ClosingListener
,ListenerClass
,ListenerMain
: 윈도우 리스너와 어댑터를 사용하여 윈도우 이벤트를 처리하는 예제입니다.
Frame
에 "확인"과 "닫기" 버튼이 있는 간단한 프레임을 생성합니다.- 버튼 클릭 이벤트를 처리하기 위해
ActionListener
를 사용하였습니다.
- "버튼1", "버튼2", "버튼3" 세 개의 버튼을 만들어 각각의 버튼에 대한 클릭 이벤트를 처리합니다.
- 버튼 이벤트를 처리하기 위해
ActionListener
를 사용하였습니다.
- "1. 당신의 취미는 무엇입니까?"라는 질문과 각각 "영화", "독서", "운동"에 대한 체크박스를 만들어 선택 상태를 출력합니다.
- "2. 당신의 성별은 무엇입니까?"라는 질문과 "남자"와 "여자"에 대한 라디오버튼을 만들어 선택된 항목을 출력합니다.
- 혈액형 선택을 위한
Choice
를 생성하고 선택된 항목을 출력합니다.
- "월", "화", ..., "일"까지의 항목을 가진
Choice
를 생성하고 항목이 선택되면 콘솔에 출력합니다.
- 기본적인 메모장 형태를 가진 프로그램입니다.
- 상단에는 텍스트 필드와 "확인" 버튼이 있고, 중앙에는 텍스트 에어리어로 메모를 작성할 수 있습니다.
- 하단에는 "저장"과 "닫기" 버튼이 있습니다.
각 예제는 AWT를 활용하여 간단한 GUI를 생성하고, 사용자 입력 또는 버튼 클릭과 같은 이벤트를 처리하는 방법을 보여줍니다. 코드를 실행하면 각각의 창이 나타나며 예제에 따라 다양한 GUI 컴포넌트와 이벤트 처리가 이루어집니다.
이 코드는 Java Swing을 사용하여 이미지를 화면에 표시하고, 버튼을 클릭하면 이미지가 변경되도록 하는 간단한 GUI 프로그램입니다.
ImageIcon
을 사용하여 이미지 파일을 로드합니다.JLabel
을 생성하여 이미지를 표시합니다.JButton
을 생성하고, 버튼을 클릭하면 이미지가 변경되도록 합니다.
이 코드는 Java Swing을 사용하여 간단한 채팅 클라이언트 프로그램을 구현한 것입니다.
JFrame
을 활용하여 GUI를 생성합니다.- 서버에 접속하기 위해
Socket
을 사용합니다. - 텍스트 에어리어, 텍스트 필드, 전송 버튼이 있는 간단한 채팅 창을 만듭니다.
- 서버로 메시지를 전송하는 기능을 구현하고, 메시지를 받아와서 텍스트 에어리어에 출력합니다.
- 클라이언트는 별도의 스레드(
Runnable
구현)에서 서버로부터 메시지를 지속적으로 수신하도록 합니다.
이 코드는 ChatClient
를 실행하기 위한 메인 클래스입니다. 단순히 ChatClient
객체를 생성합니다.
이 코드는 간단한 다중 채팅 서버를 구현한 것입니다.
ServerSocket
을 사용하여 클라이언트의 연결을 기다립니다.- 각 클라이언트에 대해
CopyClient
스레드를 생성하고 실행합니다. CopyClient
는 클라이언트 간의 채팅을 관리하고, 새로운 클라이언트가 접속하면 서버에 알립니다.
이 코드는 ChatServer
를 실행하기 위한 메인 클래스입니다. 단순히 ChatServer
객체를 생성하고 실행합니다.
이 코드는 서버에서 각 클라이언트를 별도의 스레드로 처리하기 위한 클래스입니다.
- 클라이언트로부터 메시지를 받아와서 서버에 전달합니다.
- 클라이언트가 종료되면 서버에서 해당 클라이언트를 리스트에서 제거하고, 나머지 클라이언트에게 퇴장 메시지를 전송합니다.