728x90
<1. Song클래스 만들기>
class Song {
private String title;
public Song(String title) {
this.title = title;
}
public String getTitle() {
return title;
}
}
public class four {
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());
}
}
멤버변수는 private으로 했습니다. private니까 굳이 title을 가져오는 함수를 만들었겠죠?
<2. Phone클래스>
import java.util.Scanner;
class Phone {
private String name, tel;
public Phone(String name, String tel) {
this.name = name;
this.tel = tel;
}
public String getName() {
return name;
}
public String getTel() {
return tel;
}
}
public class four {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
Phone[] telbook = new Phone[2];
for (int i =0; i<2; i++) {
System.out.print("이름과 전화번호 입력 >>");
String name = scanner.next();
String tel = scanner.next();
telbook[i] = new Phone(name, tel);
}
for (int i =0; i<2; i++) {
System.out.println(telbook[i].getName() + "의 번호 " + telbook[i].getTel());
}
scanner.close();
}
}
저는 Phone클래스의 배열을 이용하여 코드를 짰습니다.
for문 안에 telbook.length를 사용했어도 됐겠네요!
<3. Rect클래스 객체 배열>
import java.util.Scanner;
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 four {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
int sum = 0;
Rect[] rect = new Rect[4];
for (int i =1; i<=rect.length; i++) {
System.out.print(i + " 너비와 높이 >>");
int width = scanner.nextInt();
int height = scanner.nextInt();
rect[i-1] = new Rect(width, height);
}
System.out.println("저장하였습니다...");
for (int i =0; i<rect.length; i++) {
sum += rect[i].getArea();
}
System.out.println("사각형의 전체 합은 "+sum);
scanner.close();
}
}
어렵지 않네요
<4. PhoneManager클래스 만들기>
먼저 Phone 클래스의 코드입니다.
class Phone {
private String name, tel;
public Phone(String name, String tel) {
this.name = name;
this.tel = tel;
}
public String get_name() {
return name;
}
public String get_tel() {
return tel;
}
}
이 클래스는 한 사람의 이름과 전화번호를 객체로 다룹니다.
멤버변수는 전부 private으로 설정해줬고, 멤버변수를 이용하기 위한 함수를 따로 만들어줬습니다.
필드는 최대한 숨기는 게 좋다고 해서 그냥 만들어봤습니다. public으로 만들어도 상관없을겁니다.
그 다음은 main을 포함하는 PhoneManager클래스입니다.
public class PhoneManager {
private Phone[] parr;
void inputinfo(int num) {
Scanner scanner = new Scanner(System.in);
parr = new Phone[num];
for (int i = 0; i < parr.length; i++) {
System.out.print("이름과 전화번호(번호는 연속적으로 입력)>>");
String name = scanner.next();
String tel = scanner.next();
parr[i] = new Phone(name, tel);
}
System.out.println("저장되었습니다...");
}
void find(String name) {
String tel = "";
for (int i = 0; i < parr.length; i++) {
if ((parr[i].get_name().equals(name))) {
tel = parr[i].get_tel();
break;
}
}
if (tel.equals(""))
System.out.println(name + " 이(가) 없습니다.");
else
System.out.println(name + "의 번호는 " + tel + " 입니다.");
}
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
PhoneManager pm = new PhoneManager();
String input_name;
int n;
System.out.print("인원수>>");
n = scanner.nextInt();
pm.inputinfo(n); // 입력 수만큼 정보 입력받기
while (true) {
System.out.print("검색할 이름 >>");
input_name = scanner.next();
if (input_name.equals("exit"))
break;
pm.find(input_name); // 입력값에 해당하는 정보 찾기
}
System.out.println("프로그램을 종료합니다...");
scanner.close();
}
}
이 클래스는 전화번호부에 해당하는 클래스로,
1. Phone 배열을 가리키는 레퍼런스
2. 전화번호 목록을 입력받는 함수 inputinfo
3. 전화번호부에서 이름과 일치하는 정보를 찾는 find함수
로 이루어져있습니다.
main은 최대한 간결하게 만들어봤습니다.
전화번호부 pm을 만들어주고,
인원수를 입력받아 inputinfo의 입력으로 넣어줍니다. (인원수만큼 정보를 입력받는 함수)
그러고 사용자가 exit을 입력할 때까지 무한루프를 돌며 검색하는 이름에 맞는 정보를 전화번호부에서 찾아줍니다.
(입력값에 해당하는 정보가 없으면 해당 값이 없다고 뜹니다.)
728x90
'프로그래밍 언어 > javastudy' 카테고리의 다른 글
명품 자바 에센셜 5단원/ Bear와 Fish 먹기 게임 (0) | 2021.07.13 |
---|---|
명품 Java Essential 4단원 실습문제 #2 (0) | 2021.07.12 |
명품 Java Essential 4단원 끝말잇기 게임/ scanner에서 NoSuchElementException 예외발생 대처 (0) | 2021.07.10 |
명품 Java Essential 3단원 실습문제 (3) | 2021.07.07 |
자바 공부 #5 up&down게임 (3) | 2021.07.05 |