본문 바로가기

배운 책들 정리/자바 완전 정복

자바 완전 정복 6-2 - 객체지향개념 2

1 팁

1. 

 

 

 

2 복습

1.  for문

package j0518;

public class C0518_01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int sum = 0;
		// 1부터 10까지의 합 for문을 활용해서
		for (int i = 1; i <= 10; i++) {
			sum += i;
		}
		System.out.println(sum);

		int sum1 = 0;
		// 1부터 100까지의 합 for문을 활용해서
		for (int i = 1; i <= 100; i++) {
			sum1 += i;
		}
		System.out.println(sum1);

		int sum2 = 0;
		// 1부터 1000까지의 합 for문을 활용해서
		for (int i = 1; i <= 1000; i++) {
			sum2 += i;
		}
		System.out.println(sum2);
	}

}

 

2. sysout 

 

 

package j0518;

public class C0518_02 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("안녕하세요");
		System.out.print("반갑습니다");
		System.out.printf("이렇게 하면 어떻게 될까요?");

		int a = 10;
		int b = 100;
		System.out.println("a : " + a + " b : " + b);
		System.out.printf("\n a: %d:, b: %d \n", a, b);
		int num = 1, num2 = 2, num3 = 3;
		System.out.println(" num : " + num + " num2 : " + num2 + " num3 : " + num3);
		System.out.printf("num = %d, num2 = %d, num3 = %d \n", num, num2, num3);
	}

}

// int sum = 0;
// // 1부터 10까지의 합 for문을 활용해서
// for (int i = 1; i <= 10; i++) {
// sum += i;
// }
// System.out.println(sum);

// int sum1 = 0;
// // 1부터 100까지의 합 for문을 활용해서
// for (int i = 1; i <= 100; i++) {
// sum1 += i;
// }
// System.out.println(sum1);

// int sum2 = 0;
// // 1부터 1000까지의 합 for문을 활용해서
// for (int i = 1; i <= 1000; i++) {
// sum2 += i;
// }
// System.out.println(sum2);

 

3. if문

 

 

package j0518;

import java.util.Scanner;

public class C0518_03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan = new Scanner(System.in);
		int sum = 0;
		System.out.println("1번째 숫자 입력하세요");
		int num1 = scan.nextInt();
		System.out.println("2번째 숫자 입력하세요");
		int num2 = scan.nextInt();

		// 1)
		// for (int i = num1; i <= num2; i++) {
		// sum += i;
		// }

		// 2)
		int temp = 0;
		if (num1 > num2) {
			temp = num2; // num2 =1, num1= 2일 경우 temp=1
			num1 = num2; // num1 = 1
			num2 = temp; // num2 = 1
		}
		System.out.printf("%d부터 %d까지의 합", num1, num2);
		// System.out.println(sum);

	}

}

// int sum = 0;
// // 1부터 10까지의 합 for문을 활용해서
// for (int i = 1; i <= 10; i++) {
// sum += i;
// }
// System.out.println(sum);

// int sum1 = 0;
// // 1부터 100까지의 합 for문을 활용해서
// for (int i = 1; i <= 100; i++) {
// sum1 += i;
// }
// System.out.println(sum1);

// int sum2 = 0;
// // 1부터 1000까지의 합 for문을 활용해서
// for (int i = 1; i <= 1000; i++) {
// sum2 += i;
// }
// System.out.println(sum2);

 

4. 대문자 변환

 

 

package j0518;

import java.util.Scanner;

public class C0518_04 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		// 문자를 입력받아 해당 소문자로 변환하시오.
		Scanner scan = new Scanner(System.in);

		// 대문자 : A-65,66,Z-96 소문자 : a-97,98..
		System.out.println("소문자를 입력하면 대문자로 변환됩니다.");
		char ch = scan.next().charAt(0);

		// 대문자,소문자인지 비교
		if (ch <= 96) {
			ch = (char) (ch + 32);
		} else {
			ch = (char) (ch - 32);
		}
		System.out.println(ch);

	}
}
// System.out.println("문자를 입력하세요");
// char ch = scan.next().charAt(0);
// ch = (char) (ch - 32);
// System.out.println(ch);

 

걍 처음부터 복습

 

3 이론

1. 파라미터 테스트

 

값 복사

 

주소값 복사

 

2. 클래스매서드와 인스턴스메서드

 

 

3. 메서드 호출

 

 

4. 

 

4 실습

1. 메뉴판 구성

 

package j0518;

import java.util.Scanner;

public class C0518_09 {

	static Scanner scan = new Scanner(System.in);
	static int myMoney = 1000;
	static int choice = 0, temp = 0;

	public static void main(String[] args) {
		// 자판기 프로그램
		// 1. 밀크커피 2.헤이즐럿커피 3. 블랙커피 4. 코코아 5. 우유
		// 300,500,350,300,400
		// 6. 잔액충전

		while (true) {
			System.out.println("[학교다방 자판기]");
			System.out.println("1. 밀크커피 300");
			System.out.println("2. 헤이즐럿커피 500");
			System.out.println("3. 블랙커피 350");
			System.out.println("4. 코코아커피 300");
			System.out.println("5. 우유 400");
			System.out.println("6. 잔액충전");
			System.out.println("0. 프로그램 종료");
			System.out.println("---------------------");
			System.out.printf("현재 잔액 : %,d \n", myMoney);
			System.out.println("원하는 번호 입력하세요");
			choice = scan.nextInt();

			switch (choice) {
				case 1:
					myMoney = order(myMoney, 300, "밀크커피");
					break;
				case 2:
					myMoney = order(myMoney, 500, "헤이즐럿커피");
					break;

				case 3:
					myMoney = order(myMoney, 350, "블랙커피");
					break;

				case 4:
					myMoney = order(myMoney, 300, "코코아커피");
					break;

				case 5:
					myMoney = order(myMoney, 400, "우유");
					break;

				case 6:
					cash();

				case 0:
					System.out.println("종료합니다.");
					break;

			}// switch

		} // while

	}

	static int order(int myMoney, int price, String title) {
		if (myMoney >= price) {
			System.out.println(title + "가 나옵니다.");
			myMoney -= price;
		} else {
			System.out.println("잔액이 부족합니다.");

		}
		return myMoney;
	}// static

	static void cash() {

		System.out.println("충전하시려면 1을 눌러주세요");
		choice = scan.nextInt();

		if (choice == 1) {
			System.out.println("충전할 금액을 입력하세요");
			temp = scan.nextInt();
			myMoney += temp;
			System.out.println("[충전이 되었습니다] ");
			System.out.println();
			System.out.println("현재잔액 : " + myMoney);
			System.out.println("충전금액 : " + temp);
		} else
			System.out.println("시스템에 오류가 있습니다. 다시 실행해주세요.");
		System.out.println();

	}
}

 

2. 팩토리얼 2

 

 

package j0518;

import java.util.Scanner;

public class C0518_01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int sum = 0;
		// 1부터 10까지의 합 for문을 활용해서
		for (int i = 1; i <= 10; i++) {
			sum += i;
		}
		System.out.println(sum);

		int sum1 = 0;
		// 1부터 100까지의 합 for문을 활용해서
		for (int i = 1; i <= 100; i++) {
			sum1 += i;
		}
		System.out.println(sum1);

		int sum2 = 0;
		// 1부터 1000까지의 합 for문을 활용해서
		for (int i = 1; i <= 1000; i++) {
			sum2 += i;
		}
		System.out.println(sum2);

		// 숫자를 입력받아 해당되는 팩토리얼 구현
		Scanner scan = new Scanner(System.in);
		int num = 1;
		System.out.println("값을 입력하세요");
		int fac = scan.nextInt();
		for (int i = fac; i > 0; i--) {
			num *= i;
			System.out.println("num :" + num);
		}
		System.out.println("결과값 : " + num);

	}

}

 

 

5 문제풀이

1. 로또 프로그램

 

 

package j0518;

import java.util.Scanner;

public class C0518_08 {
	static int input = 0;
	static int[] lotto = new int[45];
	static int[] myNum = new int[6];
	static int[] myLotto = new int[6];
	static int temp = 0, random = 0, count = 0;
	static Scanner scan = new Scanner(System.in);

	public static void main(String[] args) {
		// 로또 맞추기
		// 1~45까지 숫자입력

		// 1~45까지 숫자를 lotto 넣기

		while (true) {
			System.out.println();
			System.out.println("[로또프로그램 생성]");
			System.out.println("1.로또번호 생성");
			System.out.println("2.로또번호 입력");
			System.out.println("3.로또번호 당첨 확인");
			System.out.println("0. 종료");
			System.out.println();
			System.out.println("번호를 입력하세요");
			input = scan.nextInt();

			switch (input) {

				case 1:
					creationlotto();
					System.out.println("로또번호가 생성되었습니다.");
					break;

				case 2:
					inputlotto();
					break;

				case 3:
					outputlotto();
					break;

				case 0:
					if (input == 0) {
						System.out.println("종료합니다.");
						break;
					}
					break;

			}// switch input

		} // while

	}// main

	// 1. 생성
	static void creationlotto() {

		// 1~45번까지 숫자 lotto 넣기
		for (int i = 0; i < lotto.length; i++) {
			lotto[i] = i + 1;
		}

		// 섞기
		for (int i = 0; i < 100; i++) {
			random = (int) (Math.random() * 45);
			temp = lotto[0];
			lotto[0] = lotto[random];
			lotto[random] = temp;
		}

	}

	// 2. 입력
	static void inputlotto() {
		// 입력
		for (int i = 0; i < myNum.length; i++) {
			System.out.println();
			System.out.println((i + 1) + "번째 값을 입력하세요");
			myNum[i] = scan.nextInt();
			System.out.print("현재까지 입력한 값 : ");
			for (int j = 0; j < myNum.length; j++) {
				System.out.print(myNum[j] + " ");
				// count++;
			}
		}
		// for (int i = 0; i < myNum.length; i++) {
		// }

		// 확인
		for (int i = 0; i < myNum.length; i++) {
			for (int j = 0; j < myNum.length; j++) {
				if (lotto[i] == myNum[j]) {
					myLotto[count] = lotto[i];
					count++;
					break;
				}
			}
		}
	}

	// 3. 당첨 확인
	static void outputlotto() {
		System.out.print("추첨번호 확인 : ");
		for (int i = 0; i < myNum.length; i++) {
			System.out.print(lotto[i] + " ");
		}
		System.out.println();

		System.out.print("입력번호 확인 : ");
		for (int i = 0; i < myNum.length; i++) {
			System.out.print(myNum[i] + " ");
		}
		System.out.println();

		System.out.print("당첨번호 확인 : ");
		for (int i = 0; i < myNum.length; i++) {
			System.out.print(myLotto[i] + " ");
		}
		System.out.println();
		System.out.print("당첨횟수 확인 : " + count);

	}

}// class

 

 

 

* 핵심

- static 활용법 이해하기

 

 

* 0518 실습 링크

 

GitHub - RosePaku/bigdata_java: 빅데이터_자바의_정석

빅데이터_자바의_정석. Contribute to RosePaku/bigdata_java development by creating an account on GitHub.

github.com

 

 

728x90
반응형
LIST