과제1>Video 관리 프로그램을 만들어 보자.
클래스 :
1. Video --> 비디오 정보를 담고 있다.
2. GeneralMember -> 일반회원에 대한 정보
3. SpecialMember -> 특별회원에 대한 정보
4. main() 갖고 있는 클래스
결과> OOO님은 OOOOO비디오를 대여하였습니다.
Video.java
class Video
{
private String vNum;
private String vName;
private int vPrice;
//비디오 생성자
public Video(String vNum, String vName, int vPrice) {
this.vNum = vNum;
this.vName = vName;
this.vPrice = vPrice;
}
public String getVNum() {
return vNum;
}
public String getVName() {
return vName;
}
public int getVPrice() {
return vPrice;
}
//--비디오 생성자 완료
}
GeneralMember.java
class GeneralMember
{
private String gName;
private String gPhone;
int point = 0;
//일반회원 생성자
public GeneralMember(String gName, String gPhone) {
this.gName = gName;
this.gPhone = gPhone;
}
public String getGName() {
return gName;
}
public String getGPhone() {
return gPhone;
}
//--일반회원 생성자 완료
}
SpecialMember.java
class SpecialMember extends GeneralMember
{
public SpecialMember(String gName, String gPhone) {
super(gName, gPhone);
}
void join() {
point += 10;
System.out.println("가입을 축하드립니다. 일반회원으로 등록되셨습니다.");
}
void input() {
System.out.println("비디오를 반납하셨습니다. 포인트 적립되셨습니다.");
point += 10;
}
void output(Video a){
System.out.println("가격은 "+a.getVPrice()+"원입니다.");
}
void myInfo() {
System.out.println(getGName()+"님의 전화번호는 "+getGPhone()+"이고, 포인트는 " +point+ " 이십니다.");
if (point >= 10)
{
System.out.println(getGName()+ "님은 특별회원이십니다.");
} else
System.out.println(getGName()+ "님은 일반회원이십니다.");
}
}
Test1.java
class Test1
{
public static void main(String[] args)
{
Video v1 = new Video("001", "트랜스포머1", 2000);
SpecialMember mem1 = new SpecialMember("연습일", "010-200-3000");
mem1.j-in();
System.out.println(mem1.getGName()+" 님은 '" +v1.getVName()+"' 비디오를 대여하였습니다.");
mem1.output(v1);
mem1.myInfo();
}
}
과제2> 6장 예제6-6, 6-7, 6-8, 6-11, 6-22 코딩하고 이해하기
Account.java
//일반 계좌 클래스
class Account
{
String accountNo;
String ownerName;
int balance;
Account(String accountNo, String ownerName, int balance) {
this.accountNo = accountNo;
this.ownerName = ownerName;
this.balance = balance;
}
void deposit(int amount) {
balance += amount;
}
int withdraw(int amount) throws Exception{
if (balance < amount)
{
throw new Exception("잔액이 부족합니다.");
}
balance -= amount;
return amount;
}
}
CheckingAccount.java
//직불계좌 클래스
class CheckingAccount extends Account
{
String cardNo;
CheckingAccount(String accountNo, String ownerName, int balance, String cardNo) {
super(accountNo, ownerName, balance);
this.cardNo = cardNo;
}
int pay(String cardNo, int amount) throws Exception {
if (!cardNo.equals(this.cardNo) || (balance < amount))
{
throw new Exception("지불이 불가능 합니다.");
}
return withdraw(amount);
}
}
CreaditLineAccount.java
class CreaditLineAccount extends Account
{
int creaditLine;
CreaditLineAccount(String accountNo, String ownerName, int balance, int creaditLine) {
super(accountNo, ownerName, balance);
this.creaditLine = creaditLine;
}
int withdraw(int amount) throws Exception {
if ((balance + creaditLine) < amount)
{
throw new Exception("인출이 불가능 합니다.");
}
balance -= amount;
return amount;
}
}
BonusPointAccount.java
class BonusPointAccount extends Account
{
int bonusPoint;
BonusPointAccount(String accountNo, String ownerName, int balance, int bonusPoint) {
super(accountNo, ownerName, balance);
this.bonusPoint = bonusPoint;
}
void deposit(int amount) {
super.deposit(amount);
bonusPoint += (int) (amount * 0.001);
}
}
InheritanceExample.java
class InheritanceExample
{
public static void main(String[] args)
{
Account obj1 = new Account("111-22-333333", "임꺽정", 10000);
CheckingAccount obj2 = new CheckingAccount("444-55-666666", "홍길동", 20000, "5555-6666-7777-8888");
CreaditLineAccount obj3 = new CreaditLineAccount("777-88-999999", "김선달", 30000, 20000000);
BonusPointAccount obj4 = new BonusPointAccount("000-00-000000", "김미영", 0, 0);
printAccountInfo(obj1);
printAccountInfo(obj2);
printAccountInfo(obj3);
printAccountInfo(obj4);
}
static void printAccountInfo(Account obj) {
System.out.println("계좌번호 : "+obj.accountNo);
System.out.println("예금주이름 : "+obj.ownerName);
System.out.println("계좌번호 : "+obj.balance);
System.out.println();
}
}
'Study > Java' 카테고리의 다른 글
[java] 참조값, instead of, 클래스 (0) | 2019.05.15 |
---|---|
[java] 예외처리, 정적필드 (0) | 2019.05.15 |
[java] 상속, 인터페이스 (0) | 2019.05.15 |
[java] for문의 활용 (0) | 2019.05.15 |
[java] 객체지향 실습 (0) | 2019.05.14 |