-
쉽게 배우는 자바 프로그래밍 2판 4장 프로그래밍 문제 (1번 ~ 5번)JAVA/연습문제 2022. 10. 7. 17:01반응형
# 개발 공부하는 초보자가 작성한 답안이니 정답이 아닐 수 있습니다!!!
1. 삼각형을 나타내는 Triangle 클래스를 작성하라. 삼각형의 속성으로는 실숫값의 밑변과 높이를, 동작으로는 넓이 구하기와 접근자가 있고 생성자도 포함한다. 작성한 클래스를 다음 코드를 사용해 테스트하라.
📢주어진 값📢 public class TriangleTest { public static void main(String[] args) { Triangle t = new Triangle(10.0, 5.0); System.out.println(t.findArea()); } }
🧤정답🧤 class Triangle { private double base, high; // 접근자를 위해서 임의로 private 선언 double findArea() { // 넓이 구하기 return base * high * 0.5; } double getBase() { // 밑변 접근자(값을 가져오기 위해) return base; } double getHigh() { // 높이 접근자(값을 가져오기 위해) return high; } Triangle(double base, double high) { // 생성자 this.base = base; this.high = high; } } public class TriangleTest { public static void main(String[] args) { Triangle t = new Triangle(10.0, 5.0); System.out.println(t.findArea()); } }
2. 1번에서 작성한 Triangle 클래스에 2개의 삼각형 넓이가 동일한지 비교하는 isSameArea() 메서드를 추가하라. 그리고 다음 코드를 사용해 테스트하라.
📢주어진 값📢 public class TriangleTest2 { public static void main(String[] args) { Triangle2 t1 = new Triangle2 (10.0, 5.0); Triangle2 t2 = new Triangle2 (5.0, 10.0); Triangle2 t3 = new Triangle2 (8.0, 8.0); System.out.println(t1.isSameArea(t2)); System.out.println(t1.isSameArea(t3)); } }
🧤정답🧤 public class Triangle2 { private double base, high; double findArea() { return base * high * 0.5; } String isSameArea(Triangle2 findArea) { // 비교해야하므로 매개변수 타입이 Triangl2에 findArea이다. if (findArea() == findArea.findArea()) { return "동일합니다."; } else return "동일하지 않습니다."; } double getBase() { return base; } double getHigh() { return high; } Triangle2(double base, double high) { this.base = base; this.high = high; } } public class TriangleTest2 { public static void main(String[] args) { Triangle2 t1 = new Triangle2(10.0, 5.0); Triangle2 t2 = new Triangle2(5.0, 10.0); Triangle2 t3 = new Triangle2(8.0, 8.0); System.out.println(t2); // t2는 주소값을 나타낸다. System.out.println(t1.isSameArea(t2)); System.out.println(t1.isSameArea(t3)); } }
3. 회원을 관리하려고 회원을 모델링한 Member 클래스를 작성하라. 회원 정보로는 이름, 아이디, 암호, 나이가 있으며, 외부 객체는 이와 같은 회원 정보에 직접 접근할 수 없고 접근자와 설정자로만 접근할 수 있다. 그리고 모든 회원 정보를 사용해 객체를 생성할 수 있는 생성자도 있다.
🧤정답🧤 public class Member { private String Name, Id, PassWord; private int age; String getName() { return Name; } String getId() { return Id; } String getPassword() { return PassWord; } int getage() { return age; } void setMember(String Name, String Id, String PassWord, int age) { this.Name = Name; this.Id = Id; this.PassWord = PassWord; this.age = age; } public Member(String Name, String Id, String PassWord, int age) { this.Name = Name; this.Id = Id; this.PassWord = PassWord; this.age = age; } } // 아래는 해당 설정자가 잘 구현되었는지 확인하기 위해 작성 public class MemberTest { public static void main(String[] args) { Member sMember = new Member("둘리", "드래곤", "1137*", 3900); System.out.printf("%s\t%s\t%s\t%d\n", sMember.getName(), sMember.getId(), sMember.getPassword(), sMember.getage()); sMember.setMember("공실이", "핑크드래곤", "2599#", 4200); System.out.printf("%s\t%s\t%s\t%d\n", sMember.getName(), sMember.getId(), sMember.getPassword(), sMember.getage()); } }
4. 생산된 모든 자동차와 빨간색 자동차의 개수를 출력하는 Car 클래스를 작성하라. 그리고 다음 코드를 사용해 테스트하라.
📢주어진 값📢 public class CarTest { public static void main(String[] args) { Car c1 = new Car("red"); Car c2 = new Car("blue"); Car c3 = new Car("RED"); System.out.printf("자동차 수 : %d, 빨간색 자동차 수 : %d", Car.getNumOfCar(), Car.getNumOfRedCar()); } }
🧤정답🧤 public class Car { static int numOfCar, numOfRedCar; static int getNumOfCar(){ // Test 클래스에서 다른 클래스의 메소드를 직접 호출하기 때문에 return numOfCar; } static int getNumOfRedCar(){ // Test 클래스에서 다른 클래스의 메소드를 직접 호출하기 때문에 return numOfRedCar; } Car(String Color){ numOfCar++; if (Color.equals("red") || Color.equals("RED")){ // equalslgnoreCase("red")로 간단하게 가능 numOfRedCar++; } } } public class CarTest { public static void main(String[] args) { Car c1 = new Car("red"); Car c2 = new Car("blue"); Car c3 = new Car("RED"); System.out.printf("자동차 수 : %d, 빨간색 자동차 수 : %d", Car.getNumOfCar(), Car.getNumOfRedCar()); } }
5. 길이 속성만 가진 직선을 모델링한 Line 클래스를 작성하고, 다음 프로그램으로 테스트해라
📢주어진 값📢 public class LineTest { public static void main(String[] args) { Line a = new Line(1); Line b = new Line(1); System.out.println(a.isSameLine(b)); System.out.println(a == b); } }
🧤정답🧤 public class Line { int length; boolean isSameLine(Line b){ if (length == b.length){ return true; } else return false; } Line(int length){ this.length = length; } } public class LineTest { public static void main(String[] args) { Line a = new Line(1); Line b = new Line(1); System.out.println(a.isSameLine(b)); System.out.println(a == b); } }
6번 ~ 10번 문제 정답은 아래쪽 클릭
쉽게 배우는 자바 프로그래밍 2판 4장 프로그래밍 문제 (6번 ~ 10번)
# 개발 공부하는 초보자가 작성한 답안이니 정답이 아닐 수 있습니다!!! 1. 삼각형을 나타내는 Triangle 클래스를 작성하라. 삼각형의 속성으로는 실숫값의 밑변과 높이를, 동작으로는 넓이 구하
sewoni.tistory.com
반응형'JAVA > 연습문제' 카테고리의 다른 글
쉽게 배우는 자바 프로그래밍 2판 5장 연습문제 Part.2 (6번 ~ 11번) (1) 2022.10.13 쉽게 배우는 자바 프로그래밍 2판 4장 프로그래밍 문제 (6번 ~ 8번) (2) 2022.10.08 쉽게 배우는 자바 프로그래밍 2판 4장 연습문제 (1) 2022.10.07 쉽게 배우는 자바 프로그래밍 2판 4장 도전문제 (2) 2022.10.06 쉽게 배우는 자바 프로그래밍 2판 3장 프로그래밍 문제 2탄 (1) 2022.10.05