1. 다음 main() 메소드의 실행 결과 "MyPoint(3,20)"이 출력되도록 MyPoint 클래스를 작성하라.
public static void main(String[] args) {
Mypoint a = new MyPoint(3,20);
System.out.print(a);
}
<소스코드> Chapter6_1.java
class MyPoint{
int a;
int b;
MyPoint(int x, int y){
a=x;
b=y;
}
public String toString(){
return "MyPoint("+a+","+b+")";
}
}
public class Chapter6_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
MyPoint a =new MyPoint(3,20);
System.out.println(a);
}
}
2. Math.random() 메소드를 이용하여 10에서 50사이의 난수 10개를 화면에 출력하는 프로그램을 작성하라.
<소스코드> Chapter6_2.java
public class Chapter6_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num;
for(int i=0;i<10;i++){
num = (int) (Math.random()*41+10);// (0+10)~(40+10)
System.out.println(num);
}
}
}
3. Calendar 클래스를 이용하여 현재 시간에 따라 새벽 4시에서 낮 12시 이전이면 "Good Morning", 오후 6시 이전이면 "Good Afternoon", 밤 10시 이전이면 "Good Evening", 그 이후는 "Good Night"을 출력하는 프로그램을 작성하라.
<소스코드> Chapter6_3.java
import java.util.Calendar;
public class Chapter6_3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Calendar cal = Calendar.getInstance();
int hour = cal.get(Calendar.HOUR_OF_DAY);
if(hour<12&&hour>=4){
System.out.println("Good Morning");
} else if(hour>=12&&hour<18){
System.out.println("Good Afternoon");
} else if(hour>=18&&hour<22){
System.out.println("Good Evening");
} else {
System.out.println("Good Night");
}
}
}
4. int 타입의 x, y, radius 필드를 가지는 Circle 클래스를 작성하라. equals() 메소드를 재정의하여 두 개의 Circle 객체의 반지름이 같으면 두 Circle 객체가 동일한 것으로 판별하도록 하라. Circle 클래스의 생성자는 3개의 인자를 가지며 x, y, radius 필드를 인자로 받아 초기화한다.
<소스코드> Chapter6_4.java
class Circle{
int x;
int y;
int radius;
public Circle(int x, int y, int radius) {
// TODO Auto-generated constructor stub
this.x=x;
this.y=y;
this.radius=radius;
}
public boolean equals(Circle obj) {
return this.radius == obj.radius;
}
}
public class Chapter6_4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Circle c1 = new Circle(1, 1, 2);
Circle c2 = new Circle(3, 2, 3);
Circle c3 = new Circle(4, 6, 2);
if(c1.equals(c2)){
System.out.println("c1과 c2는 같다.");
} else {
System.out.println("c1과 c2는 다르다.");
}
if(c1.equals(c3)){
System.out.println("c1과 c3는 같다.");
} else {
System.out.println("c1과 c3는 다르다.");
}
}
}
5. "They is students." 스트링에서 "is"를 "are"로 대치하는 StringSub 클래스를 작성하라. 실행은 다음과 같이 한다.
<소스코드> Chapter6_5.java
public class StringSub {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "They is students.";
int i=0;
for(;i<str.length();i++){
if(str.charAt(i)=='i')
if(str.charAt(i+1)=='s'){
break;
}
}
StringBuffer sb = new StringBuffer(str);
sb.replace(i, i+2, "are");
System.out.println(sb);
}
}
6. ctrl-z가 입력될 때까지 키보드로부터 영어 문자를 읽고 그 속에 대문자가 몇 개 있는지 판별하는 프로그램을 작성하라(Open Challenge의 힌트를 참고하라).
<소스코드> Chapter6_6.java
import java.io.IOException;
import java.io.InputStreamReader;
public class Chapter6_6 {
public static void main(String[] args) {
// TODO Auto-generated method stub
InputStreamReader rd = new InputStreamReader(System.in);
int count=0;
try {
while(true) {
int c = rd.read(); // ctrl-z가 안먹혀서 Enter로 변경
if(c==13) // Enter 입력시 종료
break;
if((char)c>='A'&&(char)c<='Z') {
count++;
}
}
System.out.println(count);
} catch(IOException e) {
System.out.println("입력 오류 발생");
}
}
}
참고자료 : 생능출판 명품 JAVA Programming
github 주소 : https://github.com/ch1517/Masterwork-JAVA-Programming/tree/master/Chapter6/Chapter6
'Programming Study > 명품자바프로그래밍' 카테고리의 다른 글
[명품자바프로그래밍] 6장 Open Challenge (0) | 2018.09.26 |
---|---|
[명품자바프로그래밍] 6장 실습문제(2) (0) | 2018.09.20 |
[명품자바프로그래밍] 5장 실습문제(2) (2) | 2018.09.19 |
[명품자바프로그래밍] 5장 Open Challenge (0) | 2018.09.19 |
[명품자바프로그래밍] 5장 실습문제(1) (0) | 2017.08.11 |
댓글