TIL 0226

먼지·2024년 2월 26일

Today I Learned

목록 보기
7/89
post-thumbnail

🤺 Player 01

package kr.s05.object.field;

public class Player01 {
	
	String name;
	int age;
	
	public static void main(String[] args) {
		// 객체 선언 및 생성
		//Player01 player;
		//player = new Player01();
		Player01 p =new Player01();
		// 자료형				// 클래스 명과 같음(생성자)

		p.name = "대니 구";
		p.age = 32;
		
		System.out.println("연주자의 이름은 " + p.name + "입니다.");
		System.out.println("연주자의 나이는 " + p.age + "입니다.");
	}

}

🧑🏻‍🎓 Student 02

package kr.s05.object.field;

public class Student02 {
	//멤버 필드 (속성)
		String name;
		int age;
		String hobby;
		
	public static void main(String[] args) {
		
		Student02 student = new Student02();
		//객체가 생성되면 객체의 멤버 변수는 기본값으로 초기화 됨
		System.out.println(student.name+", " + student.age + ", " + student.hobby);
		System.out.println("--------------------");
		
		//객체의 멤버 변수에 값 할당
		student.name = "이동욱";
		student.age = 42;
		student.hobby = "연기";
		
		System.out.println(student.name+", " + student.age + ", " + student.hobby);
		
		
	}

}

🧑🏻‍🎓 Student 03

package kr.s05.object.field;

public class Student03 {
	// 멤버 필드
	String name;
	int age;
	String hobby;
	String job;

	public static void main(String[] args) {
		//객체 선언 및 생성
		Student03 student = new Student03();

		//객체의 멤버 변수에 값 할당
		student.name ="이동욱";
		student.age = 42;
		student.hobby ="요리";
		student.job = "배우";

		System.out.println(student.name + ", " + student.age +", " + student.hobby +", " 
				+ student.job);
		System.out.println("----------------------");

		Student03 student2 = new Student03();
		student2.name = "공유";
		student2.age = 43;
		student2.hobby = "캠핑";
		student2.job = "연예인";

		System.out.println(student2.name + ", " + student2.age + ", " + student2.hobby 
				+ ", " + student2.job);
	}

}

🧑🏻‍🎓 Student 04

package kr.s05.object.field;

public class Student04 {
		String name;
		int age;
		
	public static void main(String[] args) {
		//객체 선언 및 생성
		Student04 s1 = new Student04();
		s1.name = "장영실" ;
		s1.age = 15;
		System.out.println(s1.name +", " + s1.age);
		// 객체의 참조값 출력
		System.out.println(s1);
		
		System.out.println("-------------------------------------------");
		
		Student04 s2 = new Student04();
		s2.name = "을지문덕";
		s2.age = 30;
		System.out.println(s2.name +", " + s2.age);
		//객체의 참조값
		System.out.println(s2);
	}

}

🧑🏻‍🎓 Student 05

package kr.s05.object.field;

public class Student05 {
	String name;
	int kor;
	int eng;
	int math;
	int sum;
	double avg;
	
	public static void main(String[] args) {
		//객체 선언 및 생성
		Student05 student = new Student05();
		
		student.name = "홍길동";
		student.kor = 98;
		student.eng = 97;
		student.math = 95;
		
		//총점 구하기
		student.sum = student.kor + student.eng + student.math;
		//평균 구하기
		student.avg = student.sum / 3.0;
		
		//객체의 멤버 변수의 값 출력
		System.out.println("이름 : " + student.name);
		System.out.println("국어 :" + student.kor);
		System.out.println("영어 : " + student.eng);
		System.out.println("수학 : " + student.math);
		System.out.println("총점 : " + student.sum);
		System.out.printf("평균 : %.2f" , student.avg);
		
	}

}

클래스의 구조 실습

public class InstanceMain {
	//클래스의 기본 구조
	// 멤버 필드 (속성)
	int var1; //멤버 변수
	String var2; //멤버 변수
	
	//생성자, 생략 가능하며 생략하면 컴파일시 자동 생성
	public InstanceMain() {}
	
	//멤버 메서드(동작)
	 					// 데이터를 받는 것 , 함수 안으로 들어가는 입구 역할
	public int sum(int a, int b) {
		// 데이터가 연산되고 뽑아내는 역할
		// 함수를 빠져나가는 출구 역할
		return a+ b;
	}
	
	public static void main(String[] args) {
		//객체 선언 및 생성
		InstanceMain im = new InstanceMain();
		//객체의 멤버 변수에 값을 할당
		im.var1 = 100;
		im.var2 = "서울";
		
		//객체의 멤버 변수 값 호출
		System.out.println(im.var1 + ", " + im.var2);
		
		//객체의 메서드 호출
		int result = im.sum(10, 20); // 값을 넘기는것임 직접 데이터 입력함
		System.out.println("result = "+ result);
		
		
	}

}

🫧메소드 실습 1

public class MethodMain01 {
	// 반환하는 데이터가 있는 경우
	// 반환하는 데이터의 자료형(반환형) : int	
	// 메서드명 : add	
					 // 입구 | a, b => 인자
	public int add(int a , int b) {
		//출구  //반환하는 데이터
		return a + b;
	}
		public void print (String str) {
			System.out.println(str);
		}
	
	public static void main(String[] args) {
		//객체 선언 및 생성
		MethodMain01 method = new MethodMain01();
		
		//객체의 멤버 메서드 호출
		int result = method.add(5, 8);
		System.out.println("result = " + result);
		
		method.print("오늘은 월요일");
	}

}

🫧메소드 실습 2

[실습]
입력한 int형 정수값이 음수이면 -1을, 0이면 0을, 양수면 1을 반환하는 signOf 메서드를 정의한다.
public class MethodMain02 {
	/*public int signOf (int n) {
		if (n < 0 ) {
			return -1;
		}
		else if (n > 0) {
			return 1;
		}
		else
		{return 0;}
	}*/
	
	public int signOf(int n) {
		int sign = 0;
		
		if (n>0) {//양수
			sign = 1;
		}
		else if (n<0) {//음수
			sign = -1;
		}
		//else {
			//sign = 0;
		//}  초기화를 0으로 했기 때문에 굳이 쓸 필요가 없다.
		
		return sign;
	}
	
	public static void main(String[] args) {
		java.util.Scanner input = new java.util.Scanner(System.in);
		
		MethodMain02 me = new MethodMain02();
		System.out.println("정수 x를 입력하세요. >");
		int x = input.nextInt();
		
		int result = me.signOf(x);
				
		System.out.println("signOf(x)는 " + result + "입니다.");
		
		input.close();
	}

}

🫧메소드 실습 3

[실습]
배열의 요소 수를 입력 받아서 배열 x 생성
입력 받은 정수를 배열 x에 저장하고
배열 x가 가진 모든 요소의 합을 구하는 sumOf(int [] a) 메서드를 정의하시오.

[입력 예시]
요소 수 : 3 (길이가 3인 배열)
x[0] = 1
x[1] = 2
x[2] = 3

[출력 예시]
모든 요소의 합은 6 입니다.
public class MethodMain03 {
// 혼자 해결 X
	public int sumOf (int [] a) {
			int sum = 0; 
			for(int i = 0; i <a.length; i++) {
				sum += a[i]; // 누적시키기
			}
			
			return sum; //반환시키기
	}

	
	public static void main(String[] args) {
		java.util.Scanner input = new java.util.Scanner(System.in);

		// 요소의 수 입력 받기
		System.out.print("요소 수를 입력해주세요. >");
		int num = input.nextInt();
		
		//num 개의 요소를 가지는 배열
		int[] x = new int [num];
		
		for (int i = 0; i < num; i++ ) {
			System.out.print("x[" + i + "] = ");
			x[i] = input.nextInt();
		}
		
		//객체 선언 및 생성
		MethodMain03 me = new MethodMain03();
		int result = me.sumOf(x);
		System.out.println("모든 요소의 합은 " + result + " 입니다.");
	
		input.close();
	}

}

🫧메소드 실습 4

[실습]
배열 요소 수 (사람 수)를 입력 받아서 배열 weight 생성.
입력 받은 정수를 배열 weight 에 저장하고 배열 weight 가 가진 모든 요소의 수 중 최소값을 구하는 minOf 메소드를 작성하시오.

[입력 예시]
사람 수 : 3
1번의 몸무게 : 90
2번의 몸무게 : 88
3번의 몸무게 : 91

[출력 예시]
가장 마른 사람의 체중은 88kg 이다
public class MethodMain04 {

	/* 배열 메서드 공부 필요할듯 & 최대값 만들어 봤음 O
.
	 */

	public int minOf(int [] a) {
		int min = a [0];
		for (int i = 1; i < a.length; i ++) {
		if (min > a[i]) {
			min = a[i];
		}
	}
		return min;
}
	public int maxOf(int [] b) {
		int max = b[0];
		for(int i = 1; i < b.length; i++) {
			if (max < b[i]) {
				max = b[i];
			}
		}
		return max;
	}
	
	public static void main(String[] args) {
		java.util.Scanner input = new java.util.Scanner(System.in);
		
		System.out.print("사람 수는 몇 명입니까? >");
		int num = input.nextInt();
		
		int [] weight = new int [num];
		
		for(int i = 0; i < num; i ++) {
			System.out.print( (i + 1) + "번의 몸무게 : ");
			weight[i] = input.nextInt();
		}
		
		MethodMain04 me = new MethodMain04();
		
		int result = me.minOf(weight);
		System.out.println("가장 마른 사람의 체중은 " + result + "kg 입니다.");
		
		int result2 = me.maxOf(weight);
		System.out.println("가장 뚱뚱한 사람의 체중은 " + result2 + "kg 입니다.");
		
		
		input.close();

	}

}

🫧메소드 실습 5

public class StudentMain {
	
	//멤버 필드 (속성)
	String name;
	int kor;
	int eng;
	int math;

	//멤버 메서드 (동작)
	//총점 구하기
	public int makeSum() {
		return kor+eng+math;
	}
	
	//평균 구하기
	public int makeAvg() {
		return makeSum() / 3;
	}
	
	//등급 구하기
	public String makeGrade() {
		String grade;
		switch(makeAvg() / 10) {
		case 10 :
		case 9 :
			grade = "A";
			break;
		case 8 :
			grade="B";
			break;
		case 7 :
			grade="C";
			break;
		case 6 :
			grade="D";
			break;
		default :
			grade = "F";
			
		}		
		return grade;
	}
	//성적 출력용 메소드
	public void printScore() {
		System.out.println("이름 : " + name);
		System.out.println("국어 : " + kor);
		System.out.println("영어 : " + eng);
		System.out.println("수학 : " + math);
		System.out.println("총점 : " + makeSum());
		System.out.println("평균 : " + makeAvg());
		System.out.println("등급 : " + makeGrade());
	}
	
	public static void main(String[] args) {
		StudentMain student = new StudentMain();
		student.name = "이동욱";
		student.kor = 98;
		student.eng = 97;
		student.math = 96;
		
		System.out.println("이름 : " + student.name);
		System.out.println("국어 : " + student.kor);
		System.out.println("영어 : " + student.eng);
		System.out.println("수학 : " + student.math);
		System.out.println("총점 : " + student.makeSum());
		System.out.println("평균 : " + student.makeAvg());
		System.out.println("등급 : " + student.makeGrade());
		System.out.println("----------------------------------");
		
		StudentMain student2 =  new StudentMain();
		student2.name = "이수혁";
		student2.kor = 91;
		student2.eng = 99;
		student2.math = 79;
		
		System.out.println("이름 : " + student2.name);
		System.out.println("국어 : " + student2.kor);
		System.out.println("영어 : " + student2.eng);
		System.out.println("수학 : " + student2.math);
		System.out.println("총점 : " + student2.makeSum());
		System.out.println("평균 : " + student2.makeAvg());
		System.out.println("등급 : " + student2.makeGrade());
		System.out.println("----------------------------------");
		
		StudentMain student3 =  new StudentMain();
		student3.name = "차은우";
		student3.kor = 92;
		student3.eng = 99;
		student3.math = 80;
		student3.printScore();
	
	}

}

🫧메소드 실습 6

class Tv{
	// 멤버 변수
	int channel ; // 채널 번호
	boolean power ; // on/off 기능

	//멤버 메서드 ( 동작)
	public void isPower() { // TV 전원을 키거나 끄거나 기능을 수행하는 메서드
		power =  !power;
	}
	public void channelUp() { // TV의 채널을 높이는 기능 수행하는 메서드
		++channel;
	}

	public void channelDown() { //TV의 채널을 낮추는 기능을 수행하는 메서드
		--channel;
	}

}


public class TvMain {

	public static void main(String[] args) {
		//객체 선언 및 초기화
		Tv t = new Tv(); // 현재 TV는 꺼져있는 상태 power가 false 상태이기 때문에
		t.isPower(); // power의 값은 false에서 true로 바뀜
		System.out.println("TV 실행 여부 : " + t.power);
		System.out.println("현재 채널 : " + t.channel);
		System.out.println("--------------------------");

		t.channel = 7;
		System.out.println("첫번째 변경된 채널 : " + t.channel);
		System.out.println("--------------------------");

		t.channelDown(); // 1 차감
		System.out.println("두번째 변경된 채널 : " + t.channel);
		System.out.println("--------------------------");
		
		//TV 전원 끄기
		t.isPower(); // true -> false
		System.out.println("TV 실행 여부 : " + t.power);
	}

}

🫧메소드 실습 8

  • Worker
    1) 멤버 변수 : 직원 이름(name) , 급여 (money), 계좌 잔고(balance) -> 정의하는 변수들
    2) 멤버 메서드 : work(실행하면 money 에 1000원이 누적이 된다.)deposit (실행하면 money의 돈을 balance에 누적시키고, money는 0처리한다.)
  • WorkerMain의 main
    1) Worker 객체 생성
    2) 직원의 이름 지정
    3) 10번 일하는데 번 돈이 3000원일 때마다 계좌에 3000원 저축한다.
    4) 직원 이름(name), 현재 계좌에 입금되지 않고 남아있는 급여(money), 계좌 잔고(balance)를 출력하라
package kr.s07.object.method;

class Worker{	
	String name;
	int money;
	int balance;
	
	public void work(){ //일하는 메소드
		money += 1000;
		
	}
	
	public void deposit(){ //저축하는 메소드
		balance += money; //누적시키고 
		money = 0;			  //0처리
	}

}

public class WorkerMain {
	public static void main(String[] args) {
		Worker w = new Worker();
		
		w.name = "이동욱"; // 직원의 이름을 지정함
		
		//10번 일하는데 번 돈이 3000원이 되면 저축을 실행한다.
		for(int i = 1; i <11; i++) {
			w.work();
			if (w.money >= 3000) { //3000원마다 저축
											// w.money % 3000 == 0 
				w.deposit();
			}
		}
		System.out.println("직원의 이름은 " + w.name + "입니다.");
		System.out.printf("계좌에 입금되지 않고 남아있는 급여는 %,d원입니다.%n" , w.money);
		System.out.printf("계좌 잔고는 %,d원입니다.",w.balance);
	}

}

🫧메소드 실습 9

package kr.s08.object.method;
import java.util.Scanner;
//은행 프로그램

class Account{
	//  멤버 변수
	String account_num; //계좌번호
	String name; //예금주
	int balance; //잔고

	// 멤버 메소드

	//예금하기
	public void deposit (int money) {
		balance += money; // 잔고에 money 추가하기
	}

	//출금하기
	public void withdraw (int money) {
		balance -= money; // 잔고에서 money 빼기
	}

	//계좌 정보
	public void printAccount () {
		System.out.println("계좌번호 > " + account_num);
		System.out.println("예금주 > " + name);
		System.out.printf("현재 잔고 > %,d원%n", balance);
	}

}

public class BankMain {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);

		//계좌 생성
		Account a = new Account();

		//계좌 기본 정보 입력
		System.out.println("계좌 기본 정보를 입력하여 계좌를 개설해주세요.");
		System.out.print("계좌 번호 > ");
		a.account_num = input.nextLine()	;
		System.out.print("예금주 > ");
		a.name = input.nextLine()	;

		System.out.println("현재 잔고 > ");
		a.balance = input.nextInt()	;

		System.out.println( a.name + " 님의 계좌가 개설되었습니다.");

		while(true) {
			System.out.println("----------------------------------------------------");
			System.out.println("  1 . 예금  |  2 . 출금  |  3 . 계좌 정보 | 4 . 종료  ");
			System.out.println("----------------------------------------------------");
			System.out.print("메뉴를 선택해주세요 >");
			int num = input.nextInt()	;

			if (num == 1) {
				System.out.print("얼마를 예금하시겠습니까? >");
				int deposit_num = input.nextInt();
				if(deposit_num <=0) {
					System.out.println("0원보다 큰 금액을 입력해주세요. 메인으로 돌아갑니다.");
				}
				else {
					a.deposit(deposit_num);
					System.out.printf("%,d원 입금하여 현재 계좌 잔액은 %,d원입니다.%n", deposit_num, a.balance);
				}
			}
			else if (num == 2) {
				System.out.print("얼마를 출금하시겠습니까? >");
				int withdraw_num = input.nextInt()	;
				if(withdraw_num > a.balance) {
					System.out.println("계좌 잔액이 부족하여 출금 실패입니다. 메인으로 돌아갑니다.");
				}
				else if (withdraw_num <= 0) {
					System.out.println("0원보다 큰 금액을 입력해주세요. 메인으로 돌아갑니다.");
				}
				else {
					a.withdraw(withdraw_num);
					System.out.printf("%,d원 출금하여 현재 계좌 잔액은 %,d원입니다.%n", withdraw_num, a.balance);
				}
			}

			else if (num == 3) {
				System.out.println("계좌 정보를 출력하겠습니다.");
				a.printAccount();
			}
			else if (num == 4) {
				System.out.println("프로그램을 종료합니다!");
				break;
			}
			else {
				System.out.println("메뉴에 없는 번호입니다. 잘못 입력하셨습니다.");
				System.out.println("다시 입력해주세요!");
			}

		}
		input.close();
	}

}
profile
Lucky Things🍀

0개의 댓글