본문 바로가기
Studynote/Computer Science 12

09.09. 6장 객체지향프로그래밍1 실습

by e.sunie 2018. 11. 5.

실습Time

 

[6-3] 다음과 같은 맴버변수를 갖는 Student 클래스를 정의하시오

 

class  Student

{

        public static void main(String[] args)

        {

                String name;

                int ban;

                int no;

                int kor;

                int eng;

                int math;

        }

}

 

 

[6-4] 문제 6-3에서 정의한 Student클래스에 다음과 같이 정의 된 두 개의 매서드 getTotal()과 getAverage()를 추가하시오.

 

1.

매서드명 : getTotal()

기    능 : 국어, 영어, 수학의 점수를 모두 더해서 반환한다.

반환타입 : int

매개변수 : 없음

 

2.

매서드명 : getAverage()

기    능 : 총점을 과목수로 나눈 평균을 구한다.

반환타입 : float

매개변수 : 없음

 

 

[소스코드]

class  StudentTest

{

        public static void main(String[] args)

        {

                Student s =new Student();

                s.name = "홍길동";

                s.ban = 1;

                s.no = 1;

                s.kor = 100;

                s.eng = 60;

                s.math = 76;

 

                System.out.println("이름 :" + s.name);

                System.out.println("총점 : " + s.getTotal());

                System.out.println("평균 : " + s.getAverage());

 

        }

}

 

class Student

{

        /*

 

        String name;

        int ban;

        int no;

        int kor;

        int eng;

        int math;

 

        int getTotal() { return kor+eng+math; }

        float getAverage() { return (int)(getTotal()/3f*10+0.5f)/10f;}

        

        */

}

[실행결과]

이름: 홍길동

총점 : 236

평균 : 78.7

 

 

[6-5] 다음과 같은 실행결과를 얻도록 Student클래스에 생성자와 info()를 추가하시오.

 

 

소스코드

class StudentTest2

{

        public static void main(String[] args)

        {

                        Student s = new Student("홍길동", 1,1,100,60,76);

                

                System.out.println(s.info());

        }

}

 

class Student

{

        String name;

        int ban;

        int no;

        int kor;

        int eng;

        int math;

 

        Student( String name, int ban,int no, int kor, int eng, int math) //오버라이딩

        {

                this.name = name;

                this.ban = ban;

                this.no = no;

                this.kor = kor;

                this.eng = eng;

                this.math = math;

        }

 

        

        int getTotal() { return kor+eng+math; }

        float getAverage() { return (int)(getTotal()/3f*10+0.5f)/10f;}

 

        public String info()

        {

                return name +","+ ban  +","+ no  +","+ kor  +","+ eng +","+ math +","+ getTotal() +","+ getAverage();

        }

}

 

실행결과

홍길동,1,1,100,60,76,236,78.7

 

 

[6-6] 두 점의 거리를 계산하는 getDistance()를 완성하시오.

Hint : 제곱근 계산은 Math.squrt(double a)를 사용하면 된다.

 

 

소스코드

class Distance

{

        //두 점(x,y)와 (x1,y1)간의 거리를 구한다.

        static double getDistance ( int x, int y, int x1, int y1)

        {

                return Math.sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));

                  return Math.sqrt(Math.pow(x-x1,2)+Math.pow(y-y1,2));

        }

 

        public static void main(String[] args)

        {

                System.out.println(getDistance(1,1,2,2));

        }

}

 

 

실행결과

1.4142135623730951

 

 

[6-7] 문제6-6에서 작성한 클래스메서드 getDistance()를 Mypoint클래스의 인스턴스메서드로 정의하시오.

 

 

소스코드

class MyPointTest

{

        public static void main(String[] args)

        {

                MyPoint p = new MyPoint(1,1);

 

                //p(1,1)과 (2,2)의 거리를 구한다.

                

                System.out.println(p.getDistance(2,2));

        }

}

 

class MyPoint

{

        int x; //인스턴스 변수

        int y; //인스턴스 변수

 

        MyPoint(int x, int y)

        {

                this.x=x;

                this.y=y;

        }

 

        double getDistance(int x1, int y1)

        {

                return Math.sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));

        }

}

 

 

실행결과

1.4142135623730951

 

 

댓글