자바 연습으로 하는 코딩이므로 틀린 점 있으면 피드백 해주시면 감사하겠습니다.
실습문제 1번
아래 실행결과와 같이 출력하는 다음 main()을 가진 Song클래스를 작성하라.
Song클래스는 노래제목 title필드, 생성자, getTitle() 메소드로 구성된다.
package Java_Essential_Week4;
//실습문제 1번
/* 아래 실행결과와 같이 출력하는 다음 main()을 가진 Song클래스를 작성하라.
Song클래스는 노래제목 title필드, 생성자, getTitle() 메소드로 구성된다.
*/
public class Song
{
public String title;
public Song(String title)
{
this.title = title;
}
public String getTitle()
{
return title;
}
public static void main(String[] args) {
Song mySong = new Song("Nessun Dorma");
Song yourSong = new Song("공주는 잠 못 이루고");
System.out.println("내 노래는 " + mySong.getTitle());
System.out.println("너 노래는 " + yourSong.getTitle());
}
}
실행결과
실습문제 2번
다음은 이름(name 필드)과 전화번호(tel 필드)를 가진 Phone 클래스이다. 이름과 전화번호를 입력받아 2개의 Phone 객체를 생성하고, 출력하는 main()메소드를 작성하라.
package Java_Essential_Week4;
import java.util.Scanner;
// 실습문제 2번
public class Phone
{
private String name, tel;
public Phone(String name, String tel)
{
this.name = name;
this.tel = tel;
}
private String getName()
{
return name;
}
private String getTel()
{
return tel;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("이름과 전화번호 입력 >> ");
Phone one = new Phone(sc.next(), sc.next());
System.out.print("이름과 전화번호 입력 >> ");
Phone two = new Phone(sc.next(), sc.next());
System.out.println(one.getName() + "의 번호 " + one.getTel());
System.out.println(two.getName() + "의 번호 " + two.getTel());
}
}
실행결과
실습문제 3번
사각형을 표현하는 다음 Rect 클래스를 활용하여, Rect객체 배열을 생성하고, 사용자로부터 4개의 사각형을 입력받아 배열에 저장한 뒤, 배열을 검색하여 사각형 면적의 합을 출력하는 main()메소드를 가진 RectArray 클래스를 작성하라.
package Java_Essential_Week4;
import java.util.Scanner;
//실습문제 3번
class Rect
{
private int width,height; // 높이와 너비를 정수형으로받는 변수 선언
public Rect(int width, int height)
{
this.width = width;
this.height = height;
}
public int getArea() // 사각형 면적 계산 메소드
{
return width * height; // 사각형 면적 계산
}
}
public class RectArray
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
Rect[] arr = new Rect[4];
int sum = 0;
int i;
for(i=0; i<4; i++)
{
System.out.print((i+1) + "번쨰 사각형의 너비와 높이 입력 = ");
arr[i] = new Rect(sc.nextInt(), sc.nextInt());
sum += arr[i].getArea();
}
System.out.println("저장하였습니다...\n");
System.out.print("4개 사각형 면적의 전체 총합은 = " + sum + " 입니다.");
}
}
실행결과
실습문제 4번
이름(name)과 전화번호(tel) 필드, 생성자 및 필요한 메소드를 가진 Phone 클래스를 작성하고, 다음 실행 사례와 같이 작동하도록 main()을 가진 PhoneManager 클래스를 작성하라. 한 사람의 전화번호는 하나의 Phone객체로 다룬다.
package Java_Essential_Week4;
import java.util.Scanner;
// 실습문제 4번
class Phone2
{
private String name, tel;
public Phone2(String name, String tel)
{
this.name = name;
this.tel = tel;
}
public String getName()
{
return name;
}
public String getTel()
{
return tel;
}
}
public class PhoneManager {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("인원 수를 입력하세요 = ");
int Person = sc.nextInt();
Phone2[] arr = new Phone2[Person];
int i;
for(i=0; i<Person; i++)
{
System.out.print("이름과 전화번호(번호는 연속적으로 입력)>> ");
arr[i] = new Phone2(sc.next(), sc.next());
}
System.out.println("저장되었습니다...");
label : while(true)
{
System.out.print("\n" + "검색할 이름 >> ");
String yourname = sc.next();
for(i=0; i < Person; i++)
{
if(yourname.equals("exit"))
{
System.out.print("프로그램을 종료합니다...");
}
else if(yourname.equals(arr[i].getName()))
{
System.out.println(arr[i].getName() + "의 번호는 = " + arr[i].getTel() + " 입니다.");
}
else if(yourname != arr[i].getName())
{
System.out.println(yourname + "의 정보가 없습니다.");
}
}
}
}
}
실행결과
실습문제 5번
CircleManager는 static 메소드를 가진 클래스이다. StaticTest 클래스는 static메소드를 활용하는 사례를 보여준다.
실행결과를 참고하여 코드를 완성하라.
package Java_Essential_Week4;
// 실습문제 5번
class Circle
{
private int radius;
public Circle(int radius)
{
this.radius = radius;
}
public int getRadius()
{
return this.radius;
}
public void setRadius(int radius)
{
this.radius = radius;
}
}
class CircleManager
{
static void copy(Circle src, Circle dest)
{
dest.setRadius(src.getRadius());
}
static boolean equals(Circle a, Circle b)
{
if(a.getRadius() == b.getRadius())
{
return true;
}
else
{
return false;
}
}
}
public class StaticTest {
public static void main(String[] args) {
Circle pizza = new Circle(5);
Circle waffle = new Circle(1);
boolean res = CircleManager.equals(pizza, waffle);
if(res == true)
{
System.out.println("pizza와 waffle의 크기가 같음");
}
else
System.out.println("pizza와 waffle의 크기가 다름");
CircleManager.copy(pizza,waffle);
res = CircleManager.equals(pizza, waffle);
if(res == true)
{
System.out.println("pizza와 waffle의 크기가 같음");
}
else
System.out.println("pizza와 waffle의 크기가 다름");
}
}
실행결과
실습문제 6번
다음은 가로 세로로 구성되는 박스를 표현하는 Box클래스와 이를 이용하는 코드이다. Box의 draw()는 fill 필드에 지정된 문자로 자신을 그린다. 실행 결과를 보면서, 코드를 완성하라.
package Java_Essential_Week4;
//실습문제 6번
public class Box {
private int width, height;
private char fillChar; // 문자 선언
public Box()
{
this(10,1);
}
public Box(int width, int height)
{
this.width = width;
this.height = height;
}
public void draw()
{
for(int i=0;i<height; i++)
{
for(int j=0; j<width; j++)
{
System.out.print(fillChar);
}
System.out.println();
}
}
public void fill(char c)
{
this.fillChar = c;
}
public static void main(String[] args)
{
Box a = new Box();
Box b = new Box(20,3);
a.fill('*');
b.fill('%');
a.draw();
b.draw();
}
}
실행결과
오늘은 자바 에센셜 4장 실습문제를 다뤄보았습니다.
연습하면서 2~3시간씩 걸리기도하지만 자바의 이해를 위해 열심히 하고 있습니다.
감사합니다.
'Programming > Java_자바' 카테고리의 다른 글
[JAVA 기초] 대중교통 이용 프로그램 만들기 (0) | 2021.12.08 |
---|---|
[JAVA 기초] 생성자 (0) | 2021.12.08 |
[JAVA 기초] (2, 8, 10,16) 진수 별 표현 방식 및 출력 (0) | 2021.12.06 |
[JAVA 에센셜] 자바 코딩 연습_챕터3_실습문제 (0) | 2021.03.31 |
[JAVA 에센셜] 자바 코딩 연습_챕터2_실습문제 (0) | 2021.03.24 |