It Study/POWER JAVA(기본서)
POWER JAVA 4장 프로그래밍 문제 1번 ~ 7번 문제
prlkt5200
2022. 10. 6. 03:08
반응형
드디어 4장 프로그래밍 문제에 돌입했습니다.
간단하다고 생각해서 주석을 안달고 문제만 바로바로 풀었습니다!
혹시라도 해설이 필요하신 분은 댓글로 알려주세요~
Ps:(10/6:일 끝나고 피곤한 관계로 조금 눈 좀 붙이고 마저 풀겠습니다.
10/7눈좀...붙인다는 게 벌써 다음날이 되었네요 ㅠㅜ, 그래도 새벽이라도 마저 다 풀 수 있어 좋았습니다!! )
1번 문제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | package test; public class Rocket { private int x, y; public Rocket(int x, int y) { this.x = x; this.y = y; } public void moveUp() { this.y++; } @Override public String toString() { return "로켓 데이터는 " + "(" + x + "," + y + ")" + "입니다."; } public static void main(String[] args) { Rocket r = new Rocket(10,20); System.out.println(r); r.moveUp(); System.out.println(r); } } | cs |
2번 문제
이 문제는 코드만 길지 단순해서 주석은 안달았습니다.
그리고 교재에는 삼격형의 정보라 나왔는데, 그것을 응용해서 신상정보로 변경했습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | package test; public class Person { private String name; private String mobile; private String office; private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMoblie() { return mobile; } public void setMoblie(String moblie) { this.mobile = moblie; } public String getOffice() { return office; } public void setOffice(String office) { this.office = office; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Person(String n, String m, String o, String e) { name = n; mobile = m; office = o; email = e; } @Override public String toString() { return "신상 정보는? " + name + " " + mobile + " " + office + " " + email + "입니다."; } public static void main(String[] args) { Person p = new Person("이름", "010-1234-1234", "02-123-1234","이메일@사이트.com" ); System.out.println(p); p.setName("(이름변경)이름1"); System.out.println(p); } } | cs |
3번 문제
객체의 참조변수를 호출하는 것만을 객체의 필드값들이 출력되게 하기 위해 toString();를 Override 해봤는데, 이게
생각보다 편리하네요 ㅎㅎ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | package test; public class Song { private String title; private String artist; private int length; public Song(String artist, String title, int length) { this.artist = artist; this.title = title; this.length = length; } public Song(String artist, String title) { this.artist = artist; this.title = title; } public Song(String title) { this.title = title; } public Song() { this("가수", "제목"); } @Override public String toString() { return "내가 호출할 값은" + " " + artist + " " + title + " " + length; } public static void main(String[] args) { Song s1 = new Song("Outward Bound", "Nana", 180); Song s2 = new Song("Jamblaya", "Carpenters"); Song s3 = new Song("Yesterday"); Song s4 = new Song(); System.out.println(s1); System.out.println(s2); System.out.println(s3); System.out.println(s4); } } | cs |
4번 문제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | package test; public class Dog { private String name; public String breed; private int age; public Dog(String name) { this.name = name; } public Dog(String breed, int age, String name) { this.breed = breed; this.age = age; this.name = name; } public String barking() { return "barding()"; } @Override public String toString() { return "(" + breed + ", " + age + ", " + name + ")"; } public static void main(String[] args) { Dog dog = new Dog("york", 1, "orange"); System.out.println(dog); System.out.println(dog.barking()); } } | cs |
5번 문제
이 문제는 한번 응용해봤습니다. 생성자 오버로딩을 통해서 기본 생성자와 매개변수를 받는 생성자를 작성한 뒤.
if문을 활용해서 기본 생성자를 통해 값이 기본값(정수형 등은 0, 문자열 값은 null)으로 초기화 했을 때는, 객체에 값이 주어지지 않았다고 출력이 되도록 코드를 짜봤습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | package test; public class Student { private String name; private int rollno; private int age; public Student(String name, int rollno, int age) { this.name = name; this.rollno = rollno; this.age = age; } public Student() { } public static void main(String[] args) { Student student = new Student("lee", 0007, 28); System.out.printf("%s, %d, %d\n", student.name, student.rollno, student.age); if (student.name == null && student.rollno == 0 && student.age == 0) { System.out.println("값이 주어진 객체가 생성안되었습니다."); } else { System.out.println("값이 주어진 객체가 생성되었습니다."); } } } | cs |
6번 문제
이 문제는 한번 길게 코드를 짜보고 싶어서 했으나, 더 효율적인 방식이 있습니다.
print(); 메소드에
System.out.println(변수1+변수2+변수3); 출력문을 작성해준 뒤
나중에 객체 생성 후에, 객체의 참조변수명.print();를 호출해주면 바로 출력이 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | package test; public class Date { private int year; private int month; private int day; public void setData(int year, int month, int day) { this.year = year; this.month = month; this.day = day; } public String print1() { return year + "." + month + "." + day; } public String print2() { return day + "." + month + "." + year; } public static void main(String[] args) { Date day = new Date(); day.setData(2022, 10, 8); System.out.println(day.print1()); System.out.println(day.print2()); } } | cs |
6번 문제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | package test; public class Movie { private String name; private String director; private String mainActor; private int year; private double score; public Movie(String name, String director, String mainActor, int year, double score) { this.name = name; this.director = director; this.mainActor = mainActor; this.year = year; this.score = score; } @Override public String toString() { return "영화제목:" + name + "\n" + "감독:" + director + "\n" + "주연배우:" + mainActor + "\n" + "연도:" + year + "\n" + "평점:" + score; } public static void main(String[] args) { Movie movie = new Movie("티파니에서 아침을", "블레이크 에드워즈", "오드리햅번", 1962, 8.43); System.out.println(movie); } } | cs |
반응형