Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
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
Tags
more
Archives
Today
Total
관리 메뉴

WON.dev

Test . api 본문

JAVA/chapter20_api

Test . api

GAWON 2023. 5. 30. 18:28
Q1. Test01.java
Score 클래스 					필드 : int kor, eng, mat
							메소드 : Constructor, toString(), equals()
Score 인스턴스를 2개 생성하고, 동등 비교(세과목이 모두 같으면 동등) 결과 출력
각 인스턴스 정보는 toString 메소드를 통해 출력
							
Q2. Test02.java
User 클래스 					필드 : String id, password
							메소드 : Constructor, toString(), equals()
User 인스턴스를 2개 생성하고, 동등 비교(id, password 모두 같으면 동등) 결과 출력
각 인스턴스 정보는 toString 메소드를 통해 출력													
							
Q3. Test03. java							
					
Coordinate 클래스				필드 : int x, int y;
							메소드 : Constructor, equals()							
Circle 클래스					필드 : Coordinate center, double radius	
							메소드 : Constructor, equals()	
new Circle(0, 0, 1.5) // 중심 좌표[0,0], 반지름 : 1.5										

Q4. Test04.java

Student 클래스				필드 : String no(학번), String name, int[] scores(국,영,수)
							     double average, char grade, 상수 int COURSE_COUNT(과목수)
							메소드 : Student(String no, String name)
								   setter{
									setScores(int kor, int eng, int mat) - 직접 입력
									setScores(int[] scores) - 랜덤 입력
									setAverage()
									setGrade()
									}
								   toString() 학번, 성명, 평균, 학점 출력
								   equals() 학번이 같으면 같은 학생으로 비교   
								   
Q5.Test05.java
성(lastName), 이름(firstName)을 각각 입력 받아
하나의 이름(fullName)을 완성하시오. StringBuffer 클래스를 이용하시오.
위의 방식으로 두 이름을 입력 받아 두 이름(fullName)의 동등 비교를 진행하시오.


 Q6.Test06.java
1! ~ 99! 까지 전체 결과를 출력하시오.
1! (1 팩토리얼) = 1
2! (2 팩토리얼) = 1 * 2 = 2
3! (3 팩토리얼) = 1 * 2 * 3 = 6
4! (4 팩토리얼) = 1 * 2 * 3 * 4 = 24
...
n!: (n-1) * n

ex)
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
...
99!


Q7.Test07.java
현재 날짜를 StringBuffer, Calendar 클래스를 이용하여
"2019년 10월 21일 월요일 오후 1시 10분" 과 같은 형식으로 완성하고 출력하시오.
StringBuffer.append() 이용
String[] weeks = {"","일","월","화","수","목","금","토"};
package org.joonzis.test;
/*
Q1. Test01.java
Score 클래스 					필드 : int kor, eng, mat
							메소드 : Constructor, toString(), equals()
Score 인스턴스를 2개 생성하고, 동등 비교(세과목이 모두 같으면 동등) 결과 출력
각 인스턴스 정보는 toString 메소드를 통해 출력

 */

class Score {
	private int kor;
	private int eng;
	private int mat;
	
	public Score (int kor, int eng, int mat) {
		this.kor = kor;
		this.eng = eng;
		this.mat = mat;
	}
	@Override
	public String toString() {
		String info = "[국어 : " + kor +"점, 영어 : " + eng +"점, 수학 : " + mat + "점]";
		return info;
	}
	@Override
	public boolean equals(Object obj) {
		if(obj != null && obj instanceof Score) {
			Score other = (Score) obj;
			return kor == other.kor &&  eng == other.eng && mat == other.mat;
		}else {
			return false;
		}
	}
		
}

public class Test01 {

	public static void main(String[] args) {
		
		Score score1 = new Score(80, 80, 81);
		Score score2 = new Score(80, 80, 81);
		
		System.out.println(score1);	// == System.out.println(score1.toString());
		System.out.println(score2); // == System.out.println(score2.toString());
		
		if (score1.equals(score2)) {	 
			System.out.println("같은 점수입니다.");
		}else {
			System.out.println("다른 점수입니다.");
		}

	}

}
package org.joonzis.test;
/*
Q2. Test02.java

User 클래스 					필드 : id, password
							메소드 : toString(), equals()
User 인스턴스를 2개 생성하고, 동등 비교(id, password 모두 같으면 동등) 결과 출력
각 인스턴스 정보는 toString 메소드를 통해 출력													
 */

class User {
	private String id;
	private String password;
	
	public User (String id, String password) {
		this.id = id;
		this.password = password;
	}
	
	
	@Override
	public String toString() {
		return "User [id=" + id + ", password=" + password + "]";
	}


	@Override
	public boolean equals(Object obj) {
		
		if(obj != null && obj instanceof User) {
			User other = (User)obj;
			return id.equals(other.id) && password.equals(other.password);
		}else {
			return false;
		}
	}
	
}

public class Test02 {

	public static void main(String[] args) {
		
		User user1 = new User("abc123", "123a");
		User user2 = new User("abc124", "123a");
		
		System.out.println(user1);
		System.out.println(user2);
		
		if (user1.equals(user2)) {	 
			System.out.println("같은 회원입니다.");
		}else {
			System.out.println("다른 회원입니다.");
		}
			

	}

}
package org.joonzis.test;
/*
Q3. Test03. java							
					
Coordinate 클래스				필드 : int x, int y;
							메소드 : Constructor, equals							
Circle 클래스					필드 : Coordinate center, double radius	
							메소드 : Constructor, equals	
new Circle(0, 0, 1.5) // 중심 좌표[0,0], 반지름 : 1.5	

 */

class Coordinate {
	private int x;
	private int y;
	
	public Coordinate(int x, int y) {
		this.x = x;
		this.y = y;
	}
	
	@Override
	public boolean equals(Object obj) {
		if(obj != null && obj instanceof Coordinate) {
			Coordinate other = (Coordinate)obj;
			return x == other.x && y == other.y;
		}else {
			return false;
		}
	}
	
}

class Circle  { // 포함관계는 상속 보다는 이렇게 따로 클래스 만들어서 구현하는게 낫다함!
	
	private Coordinate center;
	private double radius;
	
	public Circle(int x, int y, double radius) {
		center = new Coordinate(x, y);
		this.radius = radius;
	}
	@Override
	public boolean equals(Object obj) {
		if(obj != null && obj instanceof Circle) {
			Circle other = (Circle)obj;
			return  center.equals(other.center) && radius == other.radius;
		}else {
			return false;
		}
	}
}

public class Test03 {

	public static void main(String[] args) {
		
		Circle circle1 = new Circle(0,0, 1.5);
		Circle circle2 = new Circle(0,0, 1.3);
		
		if (circle1.equals(circle2)) {	 
			System.out.println("같은 원 입니다.");
		}else {
			System.out.println("다른 원 입니다.");
		}
	}
}
package org.joonzis.test;
/*
Q4. Test04.java
Student 클래스			필드 : String no(학번), String name, int[] scores(국,영,수)
								double average, char grade, 상수 int COURSE_COUNT(과목수)
						메소드 : Student(String no, String name)
								setter{
									setScores(int kor, int eng, int mat) - 직접 입력
									setScores(int[] scores) - 랜덤 입력
									setAverage()
									setGrade()
								}
							 	toString() 학번, 성명, 평균, 학점 출력
							 	equals() 학번이 같으면 같은 학생으로 비교   
 */

class Student{
	private String no;
	private String name;
	private int[] scores;
	private double average;
	private char grade;
	public final static int COURSE_COUNT = 3;			// 과목수 , 누구든, 어디서든 Student.COURSE_COUNT로 확인가능
	
	public Student(String no, String name) {
		this.no = no;
		this.name = name;
		scores = new int[COURSE_COUNT];
	}
	
	public void setScores(int kor, int eng, int mat) {
				
		scores[0] = kor;
		scores[1] = eng;
		scores[2] = mat;
		setAverage();
		setGrade();
	}
	public void setScores(int[] scores) {
		for(int i = 0; i < COURSE_COUNT; i++) {
			this.scores[i] = scores[i];
			setAverage();
			setGrade();
		}
	}
	
	private void setAverage() {
		//average = (scores[0] + scores[1] + scores[2]) / 3.0; 과목이 3과목으로 정해졌을땐 이렇게 쓰지만
		
		int total = 0;
		for (int i = 0 ; i < COURSE_COUNT; i++) {			// 과목 수 변동이 가능할 경우 이렇게 하자!
			total += scores[i];
		}
		average = (double)total / COURSE_COUNT ;
	}
		
	private void setGrade() {
		
		switch((int)average / 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';
		
		}
				
		/*
		if(average >= 90 ) { grade = 'A';}
		else if(average >= 80) { grade ='B'; }
		else if(average >= 70) { grade ='C'; }
		else if(average >= 60) { grade ='D'; }
		else { grade ='F'; }
		*/
	}
	
	@Override
	public String toString() {
		return  "학번 : " + no + " 성명 : " + name + " 평균 : " + average + " 학점 :" + grade;
	}
	
	@Override
	public boolean equals(Object obj) {
		if(obj != null && obj instanceof Student) {
			Student other = (Student)obj;
			return no.equals(other.no) && name.equals(other.name);
		}else {
			return false;
		}
	}
	
}

public class Test04 {
	
	public static void main(String[] args) {
		
		Student student1 = new Student("5002214", "돼지");
		Student student2 = new Student("5002215", "토끼");
		int[] mid = new int[Student.COURSE_COUNT];
		for(int i = 0; i < Student.COURSE_COUNT; i++) {
			mid[i] = (int)(Math.random()*101);
		}
		
		student1.setScores(mid);
		student2.setScores(70, 71, 72);
		System.out.println(student1);
		System.out.println(student2);
		
		
		if(student1.equals(student2)) {
			System.out.println("같은 학생입니다.");
		}else {
			System.out.println("다른 학생입니다.");
		}
		
	}

}
package org.joonzis.test;

import java.util.Scanner;

/*
Q5.Test05.java

성(lastName), 이름(firstName)을 각각 입력 받아
하나의 이름(fullName)을 완성하시오. StringBuffer 클래스를 이용하시오.
위의 방식으로 두 이름을 입력 받아 두 이름(fullName)의 동등 비교를 진행하시오.
 */
public class Test05 {
	
	// Field
	static Scanner scanner  = new Scanner(System.in);
	
	// Method
	public static String inputName() {
		
		StringBuffer sb = new StringBuffer();

		System.out.print("성(lastName) >>");
		String lastName = scanner.nextLine();
		System.out.print("이름(firstName) >>");
		String firstName = scanner.nextLine();
		
		sb.append(lastName).append(" ").append(firstName);
					
		return sb.toString();						// StringBuffer -> String으로 리턴한다.
	}
		
	public static void main(String[] args) {
		
		// 메인에서 다른 메소드를 호출하려면 모두 static 처리를 해야 호출이 가능하다.
		// static 메소드는 static만 호출 할 수 있다!!!
				 

		String fullName1 = inputName();
		String fullName2 = inputName();
		
		System.out.println("성명1 : " + fullName1);
		System.out.println("성명2 : " + fullName2);
		System.out.println(fullName1.equals(fullName2) ? "같은이름" : "다른이름");
		
		
		scanner.close();
		
	}

}
package org.joonzis.test;

import java.math.BigInteger;

/*
 Q6.Test06.java
1! ~ 99! 까지 전체 결과를 출력하시오.
ex)
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
...
99!

방식)
1! (1 팩토리얼) = 1
2! (2 팩토리얼) = 1 * 2 = 2
3! (3 팩토리얼) = 1 * 2 * 3 = 6
4! (4 팩토리얼) = 1 * 2 * 3 * 4 = 24
...
n!: (n-1) * n
 * 
 */
public class Test06 {
	public static void main(String[] args) {
		// int
//		int sum = 1;
//		for(int i=1; i<100; i++) {
//			sum *= i;
//			System.out.println(i + "! = " + sum);
//		}
		
		// long
//		long sum = 1;
//		for(int i=1; i<100; i++) {
//			sum *= i;
//			System.out.println(i + "! = " + sum);
//		}
		
		//BigInteger
		BigInteger n = new BigInteger("1");
		for(int i=1; i<100; i++) {
			n = n.multiply(BigInteger.valueOf(i));
			System.out.println(i + "! = " + n);
		}
	}
}
package org.joonzis.test;

import java.util.Calendar;

/*
 Q7.Test07.java

현재 날짜를 StringBuffer, Calendar 클래스를 이용하여
"2019년 10월 21일 월요일 오후 1시 10분" 과 같은 형식으로 완성하고 출력하시오.
 */

public class Test07 {
	
	public static void main(String[] args) {
		
		StringBuffer sb = new StringBuffer();
		Calendar now = Calendar.getInstance();					// 이미 현재시간으로 자동세팅됨
		
		String[] weeks = {"","일","월","화","수","목","금","토"};	// 요일 번호를 인덱스로 사용하자!
		
		sb.append(now.get(Calendar.YEAR) + "년 ");
		sb.append((now.get(Calendar.MONTH)+1) +"월 "); 
		sb.append(now.get(Calendar.DATE) + "일 ");
		sb.append(weeks[now.get(Calendar.DAY_OF_WEEK)] + "요일 ");
		
		sb.append(now.get(Calendar.AM_PM) == 0 ? "오전 " : "오후 " );
		sb.append(now.get(Calendar.HOUR) + "시 ");
		sb.append(now.get(Calendar.MINUTE) + "분");
				
		System.out.println(sb);
						
	}

}

'JAVA > chapter20_api' 카테고리의 다른 글

chapter12 : Dday  (0) 2023.05.30
chapter11 : Calendar_Date  (0) 2023.05.30
chapter10 : Date_SimpleDateFormat  (0) 2023.05.30
chapter09 : Calendar  (0) 2023.05.30
chapter08 : Big_number  (0) 2023.05.30