romworld

Chapter 07 상속 문제 풀이 ( Human, 도형클래스, Bank) 본문

JAVA/문제풀이

Chapter 07 상속 문제 풀이 ( Human, 도형클래스, Bank)

inderrom 2022. 10. 10. 00:18

문제 1

Human

// Human 클래스


  
package z_homework.work7.w01;
public class Human {
private String name;
private int age;
public Human() {
}
public Human(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "이름: " + this.name + ", 나이: " + this.age;
}
}

 

// Student 클래스

 


  
package z_homework.work7.w01;
public class Student extends Human {
private String major;
public Student(String name, int age, String major) {
super(name, age);
this.major = major;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
@Override
public String toString() {
return super.toString() + ",전공 " + this.major;
}
}

 

 


문제2

도형클래스

 


  
package z_homework.work7.w02;
public class Shape {
public Shape() {
}
public double area() {
return 0.0;
}
public double perimeter() {
return 0.0;
}
}

  
package z_homework.work7.w02;
public class Circle extends Shape {
private double radius;
public Circle(double radius) {
super();
this.radius = radius;
}
@Override
public double area() {
return Math.pow(radius, 2) * Math.PI;
}
@Override
public double perimeter() {
return 2 * Math.PI * radius;
}
@Override
public String toString() {
return "도형의 종류 : 사각형, 둘레 : " + perimeter() + "㎝, 넓이 : " + area() + "㎠";
}
}

  
package z_homework.work7.w02;
public class Rectangle extends Shape {
double width;
double height;
public Rectangle(double whidth, double height) {
this.width = whidth;
this.height = height;
}
@Override
public double area() {
return width*height;
}
@Override
public double perimeter() {
return (width + height) * 2;
}
@Override
public String toString() {
return "도형의 종류 : 사각형, 둘레 : " + perimeter() + " ㎝, 넓이 : " + area() + "㎠";
}
}

 


문제3

Bank

 


  
package z_homework.work7.w03;
public class Customer {
private String firstName; //고객 성
private String lastName; //고객 이름
private BankAccount account; //소유계좌
public Customer(String firstName, String lastName) {
super();
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public BankAccount getAccount() {
return account;
}
public void setAccount(BankAccount account) {
this.account = account;
}
@Override
public String toString() {
return String.format("이름 : %s%s, 잔고 : %,d원", getFirstName(), getLastName(),getAccount().getBalance());
// return "이름: " + firstName + lastName + ", 잔고: " + account + "원";
}
}

  
package z_homework.work7.w03;
public class Bank {
private Customer[] customers; //고객목록
private int numberOfCustomers; //고객수 , 필드에 들어가면 0으로 초기화됨
public Bank() {
this.customers = new Customer[10];
}
public void addCustomer(Customer customer) {
customers[numberOfCustomers++] = customer; // ++가 뒤에 있으니 0번째 자리에 넣고 고객에 수가 1이 되는 거임
//numberOfCustomer += 1;
}
public int getNumberOfCustomers() {
return this.numberOfCustomers;
}
public Customer[] getCustomers() {
return this.customers;
}
public Customer getCustomer(int idx) {
return customers[idx];
}
}

 


  
package z_homework.work7.w03;
public class BankAccount {
private int balance;
public BankAccount(int balance) { //현재 계좌
super();
this.balance = balance;
}
public int getBalance() {
return this.balance;
}
public void deposit (int amount) { //예금, 저축, 입금
this.balance += amount;
}
public boolean withdraw (int amount) { //출금 //변수명을 정확히 써줘야 나중에 편함
if(this.balance < amount) {
return false;
}else {
this.balance -= amount;
return true;
}
}
//돈을 받는 계좌 account
public boolean transfer(int amount, BankAccount account) { //이체
boolean isSuccess = this.withdraw(amount); //내 계좌에 출금이 성공이면
if(isSuccess) { //isChecked, isSelected 같은 표현도 많이 씀 메서드 경우에는 boolean을 써줌
// 돈을 받을 계좌에 입금을 하는 것
account.deposit(amount); //입금을 하고
}
return false; //실패면 아무일도 안 일어남
}
}

 


 

Comments