클래스와 객체 문제

JungSik Heo·2022년 9월 22일
0

1) 자바 클래스를 작성하는 연습을 해보자. 다음 main() 메소드를 실행하였을 때 예시와 같이 출력되도록 TV 클래스를 작성하라.

public static void main(String[] args) {
   TV myTV = new TV("LG", 2017, 32); //LG에서 만든 2017년 32인치
   myTV.show();
}
LG에서 만든 2017년형 32인치 TV

코드 설명

class TV {
   private String brand;
   private int year;
   private int inch;
   TV(String brand, int year, int inch) {
      this.brand = brand;
      this.year = year;
      this.inch = inch;
   }
   public void show() {
      System.out.println(brand+"에서 만든 "+year+"년형 "+inch+"인치 TV");
   }
}

public class TVTest {

   public static void main(String[] args) {
      // TODO Auto-generated method stub
      TV myTV = new TV("LG", 2017, 32);
      myTV.show();
   }

}

2) Grade 클래스를 작성해보자. 3 과목의 점수를 입력받아 Grade 객체를 생성하고 성적 평균을 출력하는 main()과 실행 예시는 다음과 같다.

public static void main(String[] args) {
   // TODO Auto-generated method stub
   Scanner sc = new Scanner(System.in);
   
   System.out.print("수학, 과학, 영어 순으로 3개의 정수 입력 >> ");
   int math = sc.nextInt();
   int science = sc.nextInt();
   int english = sc.nextInt();
   Grade me = new Grade(math, science, english);
   System.out.println("평균은 "+me.average()); // average()는 평균을 계산하여 리턴
   
   sc.close();
}

수학, 과학, 영어 순으로 3개의 정수 입력 >> 90 88 96
평균은 91

풀이

import java.util.Scanner;

class Grade {
   private int math;
   private int science;
   private int english;
   Grade(int math, int science, int english) {
      this.math = math;
      this.science = science;
      this.english = english;
   }
   public int average() {
      return (math + science + english) / 3;
   }
}

public class GradeTest {

   public static void main(String[] args) {
      // TODO Auto-generated method stub
      Scanner sc = new Scanner(System.in);
      
      System.out.print("수학, 과학, 영어 순으로 3개의 정수 입력 >> ");
      int math = sc.nextInt();
      int science = sc.nextInt();
      int english = sc.nextInt();
      Grade me = new Grade(math, science, english);
      System.out.println("평균은 "+me.average());
      
      sc.close();
   }

}

노래 한 곡을 나타내는 Song 클래스를 작성하라. Song은 다음 필드로 구성된다.

  • 노래의 제목을 나타내는 title
  • 가수를 나타내는 artist
  • 노래가 발표된 연도를 나타내는 year
  • 국적을 나타내는 country

또한 Song 클래스에 다음 생성자와 메소드를 작성하라.

  • 생성자 2개: 기본 생성자와 매개변수로 모든 필드를 초기화하는 생성자
  • 노래 정보를 출력하는 show() 메소드
  • main() 메소드에서는 1978년, 스웨덴 국적의 ABBA가 부른 "Dancing Queen"을
    song 객체로 생성하고 show()를 이용하여 노래의 정보를 다음과 같이 출력하라.
    1978년 스웨덴국적의 ABBA가 부른 Dancing Queen

class Song {
   private String title;
   private String artist;
   private int year;
   private String country;
   Song() {
      this("title","artist",0000,"country");
   }
   Song(String title, String artist, int year, String country) {
      this.title = title;
      this.artist = artist;
      this.year = year;
      this.country = country;
   }
   public void show() {
      System.out.println(year+"년 "+country+"국적의 "+artist+"가 부른 "+title);
   }
}

public class java_study4_3 {

   public static void main(String[] args) {
      // TODO Auto-generated method stub
      Song song = new Song("Dancing Queen","ABBA",1978,"스웨덴");
      song.show();
   }

}

다음 실행 결과와 같이 3개의 Circle 객체 배열을 만들고 x, y, radius 값을 읽어 3개의 Circle 객체를 만들고 show()를 이용하여 이들을 모두 출력한다.

x, y, radius >>3.0 3.0 5
x, y, radius >>2.5 2.7 6
x, y, radius >>5.0 2.0 4
(3.0,3.0)5
(2.5,2.7)6
(5.0,2.0)4

import java.util.Scanner;

class Circle {
   private double x, y;
   private int radius;
   public Circle(double x, double y, int radius) {
      this.x = x; //x, y, radius 초기화
      this.y =y;
      this.radius = radius;
   }
   public void show() {
      System.out.println("(" + x + "," + y + ")"+ radius);
   }
}

public class CircleManager {

   public static void main(String[] args) {
      // TODO Auto-generated method stub
      Scanner sc = new Scanner(System.in);
      Circle c[] = new Circle[3]; // 3개의 Circle 배열 선언
      for(int i=0; i < c.length; i ++) {
         System.out.print("x, y, radius >>");
         double x = sc.nextDouble(); // x값 읽기.
         double y = sc.nextDouble(); // y값 읽기.
         int radius = sc.nextInt(); // radius값 읽기.
         c[i] = new Circle(x, y, radius); // Circle 객체 생성
      }
      for(int i=0; i<c.length; i++) 
         c[i].show();
      sc.close();
   }

}
profile
쿵스보이(얼짱뮤지션)

0개의 댓글