JAVA/연습문제
쉽게 배우는 자바 프로그래밍 2판 9장 프로그래밍 문제 Part.2 (6번 ~ 7번)
세언이
2022. 11. 1. 16:06
반응형

# 개발 공부하는 초보자가 작성한 답안이니 정답이 아닐 수 있습니다!!!
6. Max 클래스는 제네릭 클래스로 인수가 숫자라면 큰 수를 반환하고 숫자가 아니라면 긴 문자열을 반환하는 max() 메서드를 포함한다. 다음 프로그램과 실행 결과를 참고해 제네릭 클래스 Max를 작성하라. 단, max()의 인수는 숫자 혹은 문자열이라고 가정한다.
📢주어진 조건1📢
객체를 비교할 때 >와 같은 비교 연산자는 사용할 수 없다. Number 객체에서 정숫값이나 실숫값을 얻으려면
intValue()나 doubleValue() 메서드를 호출한다.
📢주어진 조건2📢
public class MaxTest {
public static void main(String[] args) {
Max<Number> n = new Max<>();
System.out.println(n.max(10.0, 8.0));
System.out.println(n.max(5, 8.0));
Max<String> s = new Max<>();
System.out.println(s.max("Hello", "Hi"));
System.out.println(s.max("Good", "moring"));
}
}
📢주어진 결과값📢
10.0
8.0
Hello
morning
🧤정답🧤
public class MaxTest {
public static void main(String[] args) {
Max<Number> n = new Max<>();
System.out.println(n.max(10.0, 8.0));
System.out.println(n.max(5, 8.0));
Max<String> s = new Max<>();
System.out.println(s.max("Hello", "Hi"));
System.out.println(s.max("Good", "moring"));
}
}
public class Max <Object> {
String s1, s2;
double n1, n2;
public Object max (Object ns1, Object ns2) {
if (ns1 instanceof Number) {
n1 = ((Number) ns1).doubleValue();
n2 = ((Number) ns2).doubleValue();
return (n1>n2) ? ns1 : ns2;
}
else {
s1 = (String) ns1;
s2 = (String) ns2;
return (s1.length()>s2.length()) ? ns1 : ns2;
}
}
}
7. Box라는 제네릭 클래스는 어떤 객체라도 보관할 수 있고 끄집어낼 수 있다. 다음 프로그램과 실행 결과를 참고해 Box 클래스를 작성하라.
📢주어진 조건📢
public class BoxTest {
public static void main(String[] args) {
Box<Integer> i = new Box<>();
// 오토박싱으로 그냥 100을 써도 무방한듯
i.set(new Integer(100));
System.out.println(i.get());
Box<String> s = new Box<>();
s.set("만능이네!");
System.out.println(s.get());
}
}
📢주어진 결과값📢
100
만능이네!
🧤정답🧤
public class BoxTest {
public static void main(String[] args) {
Box<Integer> i = new Box<>();
// 오토박싱으로 그냥 100을 써도 무방한듯
i.set(new Integer(100));
System.out.println(i.get());
Box<String> s = new Box<>();
s.set("만능이네!");
System.out.println(s.get());
}
}
public class Box <Object> {
Object random;
public void set (Object random) {
this.random = random;
}
public Object get() {
return random;
}
}
반응형