ผลต่างระหว่างรุ่นของ "Java-examples"
Jittat (คุย | มีส่วนร่วม) |
|||
แถว 1: | แถว 1: | ||
+ | == Phone == | ||
=== Phone.java === | === Phone.java === | ||
<geshi lang="java"> | <geshi lang="java"> | ||
แถว 49: | แถว 50: | ||
} | } | ||
</geshi> | </geshi> | ||
+ | |||
+ | == input/output == | ||
+ | <pre> | ||
+ | phone.dat | ||
+ | --------- | ||
+ | prepaid#0812345678:1000.00 | ||
+ | postpaid#0823456789:50 | ||
+ | prepaid#0888888888:20000000 | ||
+ | |||
+ | call.dat | ||
+ | -------- | ||
+ | 0812345678:5 | ||
+ | 0812345678:2 | ||
+ | 0823456789:1.5 | ||
+ | 0888888888:300 | ||
+ | 0823456789:12.5 | ||
+ | 0823456789:40.2 | ||
+ | |||
+ | output | ||
+ | ------ | ||
+ | 0812345678:954 | ||
+ | 0823456789:15.2 | ||
+ | 0888888888:199992323.5 | ||
+ | </pre> |
รุ่นแก้ไขเมื่อ 04:17, 29 เมษายน 2553
Phone
Phone.java
<geshi lang="java"> public class Phone { private double credit; Phone(double inCredit) { credit = inCredit; } public double getCredit() { return credit; } public void setCredit(double credit) { this.credit = credit; } public void call(double minute) { credit -= callCost(minute); } protected double callCost(double minute) { return 0; } } </geshi>
PrepaidPhone.java
<geshi lang="java"> public class PrepaidPhone extends Phone {
PrepaidPhone(double inCredit) { super(inCredit); }
protected double callCost(double minute) { if(minute <= 1) return 1; else return 1 + (minute - 1) * 0.5; } } </geshi>
PostpaidPhone.java
<geshi lang="java"> public class PostpaidPhone extends Phone {
PostpaidPhone(double inCredit) { super(inCredit); }
public double callCost(double minute) { return minute * 0.25; } } </geshi>
input/output
phone.dat --------- prepaid#0812345678:1000.00 postpaid#0823456789:50 prepaid#0888888888:20000000 call.dat -------- 0812345678:5 0812345678:2 0823456789:1.5 0888888888:300 0823456789:12.5 0823456789:40.2 output ------ 0812345678:954 0823456789:15.2 0888888888:199992323.5