1.Rect.java,RectHandling.java 클래스에 캡슐화를 적용하시오.
RectHandling.java에 작성
1) x,y값은 음수를 받을 수 없도록 설정=>양수만 입력이 가능
2) Setter,Getter Method를 작성할것.
===============================
2.ThreeTest.java로 저장할것.
세개의 값을 입력받아서 최대값을 구해주는 프로그램작성
int x,y,z or int a,b,c
12,4,19
최대값은 19 입니다. =>main() 작성
//(단 getMaxPrint메서드를 작성해서 구현할 것.) =>부하직원
# 내 답
public class Rect1 {
private int su;
public void setSu(int x, int y) {
if((x > 0) && (y > 0)) {
su = x;
su = y;
} else {
System.out.println("둘 중 하나라도 음수면 안됨");
System.out.println("=============");
}
}
public int getSu() {
return su;
}
}
public class RectHandling {
public static void main(String[] args) {
Rect1 rt = new Rect1();
rt.setSu(3, 1);
System.out.println(rt.getSu());
rt.setSu(3, -1);
rt.setSu(-1, 3);
}
}
# 강사님 답
// 추상화 -> 직사각형의 면적(객체)를 공통속성, 공통기능 -> 새로운 자료형
class Rect {
// 1. 공통멤버변수
private int x;
private int y = 10; // 가로, 세로
private int area; // 면적(사각형의 넓이) -> double area; // 삼각형 또는 원의 면적
public void setX(int a) { // int a = 매개변수
if (a < 0) {
System.out.println("X값은 음수 입력 불가");
x = 20; // 값을 입력을 못받기 때문에 초기값 설정
return;
}
x = a; // 멤버변수 = 매개변수
// else 안쓰면 return 해서 나가야됨
}
public void setY(int b) {
if (b < 0) {
System.out.println("Y의 값은 음수 입력 불가");
} else {
y = b;
}
}
// public 반환형 getXXX() { return 꺼내올 멤버변수명;}
public int getX() {
return x;
}
public int getY() {
return y;
}
// 2. 공통기능(메소드) 면적을 구하는 메소드
// 1) 매개변수X, 반환값X : 단순, 반복 -> 똑같은 문장 여러번 반복
void print() {
System.out.println("x의 값은 = " + x);
System.out.println("y의 값은 = " + y);
System.out.println("x * y = " + (x * y));
}
// 2) 매개변수O, 반환값X : 입력 -> 출력, 계산, 저장
void area(int a, int b) {
x = a;
y = b;
System.out.println("x * y = " + (x * y));
}
// 3) 매개변수O, 반환값O : 계산, 웹프로그래밍 방식
// 반환값 : 호출되는 메소드가 계산한 결과값 -> 메소드 자체에서 처리X
// 호출하는 caller에서 처리하는 계산값 : 보고O 반환값O
int area2(int a, int b) {
int result = a * b;
return result; // return 계산 결과값(변수) or 수식 or 객체
}
}
public class RectHandling_Answer {
public static void main(String[] args) {
Rect r = new Rect(); // 객체 생성(계산할 공간을 생성)
System.out.println("r : " + r);
//r.x = 10; // 2. 객체명.멤버변수 -> 값(X)
r.setX(-20); // x = 20
r.setY(30); // y = 30;
// 3. 객체명.호출할 메소드명() or (~)
r.print();
// 4. 매개변수를 전달 -> 계산 -> 출력
r.area(20, 40); // area라는 메소를 호출 하면서 매개변수 20,40을 전달
// 5. 반환값이 있는 메소드 호출
// 형식) 반환받는 변수명 = 객체명.호출할 메소드명
int reply = r.area2(60, 40);
System.out.println("계산받은 결과값(reply) : " + reply);
System.out.println("==================================");
System.out.println("r.area2(30, 40) : " + r.area2(30, 40));
}
}
// 3개의 값을 입력받아서 최대값을 구하기
public class ThreeTest_Answer {
public static void main(String[] args) {
int a = 12;
int b = 4;
int c = 19;
// int max; // 최대값
/*// 12 > 4(참)
max = (a > b)?a : b; // max = 12;
// 12 > 19(거짓) 이므로 c가 더큼
max = (max > c)?max:c; // max = 19;
System.out.println("max : " + max);*/
ThreeTest_Answer tt = new ThreeTest_Answer();
tt.getMaxPrint(a, b, c);
tt.getMaxPrint(20, 30, 40);
tt.getMaxPrint(40, 20, 30);
System.out.println("==================");
System.out.println("tt.getMaxPrint2(34, 12, 99)" +tt.getMaxPrint2(34, 12, 99));
}
void getMaxPrint(int a, int b, int c) {
int max = (a > b)?a : b;
max = (max > c)?max:c;
System.out.println("max : " + max);
}
// 반환값O 메소드 작성
int getMaxPrint2(int a, int b, int c) {
int max = (a > b)?a : b;
max = (max > c)?max:c;
return max;
}
}
'국비학원 > 과제 (Test)' 카테고리의 다른 글
15일차 과제 (Test) - java (0) | 2023.05.11 |
---|---|
11일차 과제 (Test) - oracle (0) | 2023.05.04 |
10일차 과제 (Test) - oracle (0) | 2023.05.04 |
4일차 과제 (Test) - toggle기능 버튼 작성 (0) | 2023.04.24 |