6-21 Tv클래스를 주어진 로직대로 완성하시오 완성한 후에 실행해서 주어진 실행결과와 일치하는지 확인하라.
class MyTv {
boolean isPowerOn;
int channel;
int volume;
final int MAX_VOLUME = 100;
final int MIN_VOLUME = 0;
final int MAX_CHANNEL = 100;
final int MIN_CHANNEL = 1;
void turnOnOff() {
// (!) isPowerOn의 값이 true면 false로, false면 true로 바꾼다
}
void volumeUp() {
// (2) voulum의 값이 MAX_VOLUME보다 작을 때만 값을 1증가시킨다/
}
void volumeDown() {
// (3) volum의 값이 MIN_VOLUME보다 클 때만 값을 1감소시킨다.
}
void channelUp() {
// (4) channel의 값을 1 증가시킨다.
// 만일 channel이 MAX_CHANNEL이면, channel의 값을 MIN_CHANNEL로 다시 바꾼다.
}
void channelDown() {
// (5)channel의 값을 1감소시킨다.
// 만일 channel이 MIN_CHANNEL이면, channel의 값을 MAX_CHANNEL로 바꾼다.
} // class MyTv
class Exercise6_21 {
public static void main(String args[]) {
MyTv t = new MyTv();
t.channel = 100;
t.volume = 0;
System.out.println("CH:" + t.channel + ", VOL:" + t.volume);
t.channelDown();
t.volumeDown();
System.out.println("CH:" + t.channel + ", VOL:" + t.volume);
t.volume = 100;
t.channelUp();
t.volumeUp();
System.out.println("CH:" + t.channel + ", VOL:" + t.volume);
}
}
class MyTv {
boolean isPowerOn;
int channel;
int volume;
final int MAX_VOLUME = 100;
final int MIN_VOLUME = 0;
final int MAX_CHANNEL = 100;
final int MIN_CHANNEL = 1;
void turnOnOff() {
// (!) isPowerOn의 값이 true면 false로, false면 true로 바꾼다
isPowerOn = !isPowerOn;
}
void volumeUp() {
// (2) voulume의 값이 MAX_VOLUME보다 작을 때만 값을 1증가시킨다/
if (volume < MAX_VOLUME)
volume += 1;
}
void volumeDown() {
// (3) volume의 값이 MIN_VOLUME보다 클 때만 값을 1감소시킨다.
if (volume > MIN_VOLUME)
volume -= 1;
}
void channelUp() {
// (4) channel의 값을 1 증가시킨다.
// 만일 channel이 MAX_CHANNEL이면, channel의 값을 MIN_CHANNEL로 다시 바꾼다.
if (channel == MAX_CHANNEL)
channel = MIN_CHANNEL;
else
channel += 1;
}
void channelDown() {
// (5)channel의 값을 1감소시킨다.
// 만일 channel이 MIN_CHANNEL이면, channel의 값을 MAX_CHANNEL로 바꾼다.
if (channel == MIN_CHANNEL)
channel = MAX_CHANNEL;
else
channel -= 1;
}
} // class MyTv
class Exercise6_21 {
public static void main(String args[]) {
MyTv t = new MyTv();
t.channel = 100;
t.volume = 0;
System.out.println("CH:" + t.channel + ", VOL:" + t.volume);
t.channelDown();
t.volumeDown();
System.out.println("CH:" + t.channel + ", VOL:" + t.volume);
t.volume = 100;
t.channelUp();
t.volumeUp();
System.out.println("CH:" + t.channel + ", VOL:" + t.volume);
}
}
CH:100, VOL:0
CH:99, VOL:0
CH:100, VOL:100
6-22 다음과 같이 정의된 메서드를 작성하고 테스트하시오.
매서드명 : isNumber
기 능 : 주어진 문자열이 모두 숫자로만 이루어져있는지 확인한다.
모두 숫자로만 이루어져 있으면 true를 반환하고, 그렇지 않으면 false를 반환한다.
만일 주어진 문자열이 null이거나 빈문자열 ""이라면 false를 반환한다.
반환타입 : boolean
매개변수 : String str - 검사할 문자열
[Hint] String클래스의 charAt(int i)메서드를 사용하면 문자열의 i번째 위치한 문자를 얻을 수 있다.
public class Exercise6_22 {
/*
* (1) isNumber . 메서드를 작성하시오
*/
public static void main(String[] args) {
String str = "123";
System.out.println(str+"는 숫자입니까? "+isNumber(str));
str = "1234o";
System.out.println(str+"는 숫자입니까? "+isNumber(str));
}
}
public class Exercise6_22 {
public static boolean isNumber(String str) {
if (str == null || str == "") {
return false;
}
for(int i=0; i<str.length();i++) {
char ch = str.charAt(i);
if (ch<'0' && ch>'9'){
return false;
}
}
return true;
}
public static void main(String[] args) {
String str = "123";
System.out.println(str + "는 숫자입니까? " + isNumber(str));
str = "1234o";
System.out.println(str + "는 숫자입니까? " + isNumber(str));
}
}
6-23 다음과 같이 정의된 메서드를 작성하고 테스트하시오.
매서드명 : max
기 능 : 주어진 int형 배열의 값 중에서 제일 큰 값을 반환한다.
만일 주어진 배열이 null이거나 크기가 0인 경우, -999999를 반환한다.
반환타입 : int
매개변수 : int[] arr - 최대값을 구할 배열
public class Exercise6_23 {
/*
* (1) max메서드를 작성하시오.
*/
}
}
return max;
}
public static void main(String[] args) {
int[] data = { 3, 2, 9, 4, 7 };
System.out.println(java.util.Arrays.toString(data));
System.out.println("최대값 :" + max(data));
System.out.println("최대값 :" + max(null));
System.out.println("최대값 :" + max(new int[] {})); // 0 최대값 크기가 인 배열
}
}
public class Exercise6_23 {
/*
* (1) max메서드를 작성하시오.
*/
static int max(int[] arr) {
if (arr == null || arr.length == 0)
return -999999;
int max = arr[0];
for (int i = 0; i < arr.length-1; i++) {
if (arr[i + 1] > max) {
max = arr[i + 1];
}
}
return max;
}
public static void main(String[] args) {
int[] data = { 3, 2, 9, 4, 7 };
System.out.println(java.util.Arrays.toString(data));
System.out.println("최대값 :" + max(data));
System.out.println("최대값 :" + max(null));
System.out.println("최대값 :" + max(new int[] {})); // 0 최대값 크기가 인 배열
}
}
[3, 2, 9, 4, 7]
최대값 :9
최대값 :-999999
최대값 :-999999
6-24 다음과 같이 정의된 메서드를 작성하고 테스트하시오.
메서드명 : abs
기 능 : 주어진 값의 절대값을 반환한다.
반환타입 : int
매개변수 : int value
class Exercise6_24 {
/*
* (1) abs메서드를 작성하시오.
*/
public static void main(String[] args)
{
int value = 5;
System.out.println(value+"의 절대값:"+abs(value));
value = -10;
System.out.println(value+"의 절대값:"+abs(value));
}
}
class Exercise6_24 {
public static int abs(int value) {
if (value > 0) {
return value;
} else {
return -value;
}
}
public static void main(String[] args) {
int value = 5;
System.out.println(value + "의 절대값:" + abs(value));
value = -10;
System.out.println(value + "의 절대값:" + abs(value));
}
}
5의 절대값:5
-10의 절대값:10
'JAVA06강 객체지향 프로그래밍1 > 객체지향 프로그래밍1 자바200제' 카테고리의 다른 글
객체지향프로그래밍1 자바200제 11~20문 (0) | 2021.07.20 |
---|---|
객체지향프로그래밍1 자바200제 1~10문 (0) | 2021.07.20 |