|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.12.2011, 21:37 | #1 |
Пользователь
Регистрация: 01.11.2010
Сообщений: 40
|
Наследование.
Вообщем составил прогу кредитных карт. Но у меня она работает не так как я ожидал. Я хотел задать 2 вида карт. Ну и для них свои методы. И если кто-то совершил с карты покупку то соответственно покупка для двух различных карт обойдется с различной скидкой.
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package CreditCard; /** * * @author Stas */ public class ClassicCreditCard extends CreditClassAccount { private static int NextAccountNo = 8000001; private int accountNomer; public ClassicCreditCard(double initBalance) { super(initBalance); accountNomer = NextAccountNo++; } @Override public int AccountNo() { return accountNomer; } @Override public void Interest(){ if(getBalance() > 500.0){ super.Interest(); } } @Override public void CProduct() { super.CProduct(); } } /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package CreditCard; /** * * @author Stas */ public class GoldCreditCard extends CreditClassAccount { private static int NextAccountNo = 1000001; private int accountNomer; public GoldCreditCard(double initBalance) { super(initBalance); accountNomer = NextAccountNo++; } @Override public int AccountNo() { return accountNomer; } @Override public void Fee(){ if(getBalance() < 2000){ super.Fee(); } } @Override public void CProduct() { super.CProduct(); } } package CreditCard; /** * * @author Stas */ abstract public class CreditClassAccount { private static double rate; //процентная ставка private double balance; // баланс счета private double purchase; CreditClassAccount(double initBalance){ if(initBalance > 0){ balance = initBalance; } } public double getPurchase(){ return purchase; } abstract public int AccountNo(); // возвращает номер счета public static double getRate(){ //возвращает процентную ставку return rate; } public static void setRate(double newRate){ //устанавливает процентную ставку if(newRate > 0.0 && newRate < 18.0){ rate = newRate; } } public void Deposit(double Amount){// внести деньги на счет if(Amount > 0.0){ balance += Amount; } } public void Wittdrawal(double Amount){// снять деньги со счета if(Amount >= 0.0){ if(Amount <= balance){ balance -= Amount; } } } public double getBalance(){ int rubli =(int)(balance); return rubli; } //каждый месяц начислять проценты и брать абонентскую плату public void Monthly(){ Fee(); //берем абонентскую плату Interest(); // начисляем проценты } public void Fee(){ balance -= 5.0; } public void Product(){ CProduct(); } public void CProduct(){ if (getPurchase()>10000){ balance-=purchase*0.5; } else balance=-purchase*0.7; } public void Interest(){ balance = balance*(1 + rate/12/100.0); } } package CreditCard; /** * * @author Stas */ import java.util.*; public class CreditCard { Vector<Object> accounts = new Vector<Object>(); public CreditCard() { } public void newAccount(int type, double initBalance,double purchase){ switch(type){ case 1: {GoldCreditCard GD= new GoldCreditCard(initBalance); CreditClassAccount.setRate(15.0); accounts.add(GD); break; } case 2: {ClassicCreditCard CL= new ClassicCreditCard(initBalance); CreditClassAccount.setRate(9.0); accounts.add(CL); } } } public void procent(CreditClassAccount b){ b.Monthly(); System.out.println(b.AccountNo() + " " + b.getBalance()); } public void bankBalance(){ for(int i = 0; i < accounts.size(); i++){ procent((CreditClassAccount)account s.elementAt(i)); } } public static void main(String[] args) { CreditCard bank1 = new CreditCard(); bank1.newAccount(1, 400,100); bank1.newAccount(1,200000,100); bank1.newAccount(2,30000,100); bank1.bankBalance(); } } Последний раз редактировалось ISV-777; 03.12.2011 в 21:40. |
05.12.2011, 22:31 | #2 |
Пользователь
Регистрация: 01.11.2010
Сообщений: 40
|
Подскажите, пожалуйста.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Наследование С++ | sir.andrey | Помощь студентам | 3 | 07.07.2011 16:31 |
наследование c++ | Nata-Tata | Помощь студентам | 1 | 06.04.2011 00:09 |
Наследование в С++ | 3AKPbIBAKA | Помощь студентам | 3 | 24.11.2010 16:38 |
Наследование | alex_triton | Общие вопросы C/C++ | 0 | 19.10.2009 20:25 |
Наследование | beregok | Общие вопросы C/C++ | 1 | 04.07.2009 22:39 |