ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 쉽게 배우는 자바 프로그래밍 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번 문제 정답은 아래쪽 클릭

    https://sewoni.tistory.com/40

     

    쉽게 배우는 자바 프로그래밍 2판 4장 프로그래밍 문제 (6번 ~ 10번)

    # 개발 공부하는 초보자가 작성한 답안이니 정답이 아닐 수 있습니다!!! 1. 삼각형을 나타내는 Triangle 클래스를 작성하라. 삼각형의 속성으로는 실숫값의 밑변과 높이를, 동작으로는 넓이 구하

    sewoni.tistory.com

     

    반응형

    댓글

Designed by Tistory.