还有一个项目问题......我有一个 BookOrder 类如下......
import java.text.DecimalFormat;
public class BookOrder
{
private String author;
private String title;
private int quantity;
private double costPerBook;
private String orderDate;
private double weight;
private char type; //R,O,F,U,N
public BookOrder (String author, String title)
{
}
public BookOrder(String author, String title, int quanitity, double costPerBook, String orderDate, double weight, char type)
{
}
public BookOrder(BookOrder bookOrder)
{
}
public void setAuthor(String author)
{
this.author= author;
}
public void setTitle(String title)
{
this.title= title;
}
public void setQuantity(int quantity)
{
if (quantity >=0)
this.quantity= quantity;
}
public void setCostPerBook(double costPerBook)
{
if (costPerBook >= 0)
this.costPerBook= costPerBook;
}
public void setOrderDate(String orderDate)
{
this.orderDate= orderDate;
}
public void setWeight(double weight)
{
if (weight >=0)
this.weight=weight;
}
public void setType(char type)
{
if (type=='r' || type=='R' || type=='o' || type=='O' || type=='f' || type=='F' || type=='u'|| type=='U'|| type=='n'|| type=='N')
{
if(type < 97) // all values below 97 are caps
this.type = type;
else
this.type = ((String.valueOf(type)).toUpperCase()).charAt(0); // had to research, but converted char to a string, capitalized it, then converted back to char.
}
else
this.type= 'N';
}
public void assignValues(int quantity, double costPerBook, double weight, char type)
{
}
public String getAuthor()
{
String strAuthor;
strAuthor=this.author;
return strAuthor;
} //end Public String getAuthor
public String getTitle()
{
String strTitle;
strTitle=this.title;
return strTitle;
}
public int getQuantity()
{
int iQuant;
iQuant=this.quantity;
return iQuant;
}
public double getCostPerBook()
{
double dCostPerBook;
dCostPerBook=this.costPerBook;
return dCostPerBook;
}
public String getOrderDate()
{
String strOrderDate;
strOrderDate=this.orderDate;
return strOrderDate;
}
public double getWeight()
{
double dWeight;
dWeight=this.weight;
return dWeight;
}
public char getType()
{
char cType;
cType=this.type;
return cType;
}
public void adjustQuantity(int adjustingQuantity)
{
int iNewQuantity = (this.quantity + adjustingQuantity);
if (iNewQuantity >= 0)
this.quantity = iNewQuantity;
else
this.quantity = 0;
}
public double totalWeight()
{
double dTotalWeight;
dTotalWeight= (this.quantity * this.weight);
return dTotalWeight;
}
public double calcCost()
{
double dCalculatedCost;
dCalculatedCost= (this.quantity * this.costPerBook);
return dCalculatedCost;
}
public double shipping()
{
double dShipping;
double dShippingCost;
if(this.type=='R')
{
dShippingCost= 0.30;
dShipping=(dShippingCost * (this.quantity * this.weight));
}
else if (this.type=='O')
{
dShippingCost= 0.50;
dShipping=(dShippingCost *(this.quantity * this.weight));
}
else if (this.type=='P')
{
dShippingCost= 0.10;
dShipping=(dShippingCost * (this.quantity * this.weight));
}
else if (this.type=='F')
{
dShippingCost=0.25;
dShipping=(dShippingCost * (this.quantity * this.weight));
}
else if (this.type=='U')
{
dShippingCost=0.30;
dShipping=(dShippingCost * (this.quantity * this.weight));
}
else
{
dShippingCost= .05;
dShipping=(dShippingCost * (this.quantity * this.weight));
}
return dShipping;
}
public double totalCost() //calcCost+shipping
{
double dTotalCost;
dTotalCost= (calcCost() + shipping());
return dTotalCost;
}
public String invoice()
{
DecimalFormat df= new DecimalFormat ("$#,#00.00");
String strInvoice;
strInvoice="\n Author: " + this.author;
strInvoice +="\n Title: " + this.title;
strInvoice +="\n Quantity: " + this.quantity;
strInvoice +="\n Cost Per Book: " + df.format(this.costPerBook);
strInvoice +="\n Order Date: " + this.orderDate;
strInvoice +="\n Total Weight: " + totalWeight();
strInvoice +="\n Shipping Type: " + this.type;
strInvoice +="\n Shipping Cost: " + df.format(shipping());
strInvoice +="\n Total Cost: " + df.format(totalCost());
return strInvoice;
}
}
它编译没有问题。然后我正在运行我的主要方法......并输入
BookOrder BookOrder1 = new BookOrder("Jonathan", "Book1", 12, 6.75, "11/5/2013", 8.75, 'r');
System.out.print(""+ BookOrder1.invoice());
然而,每当它打印我的结果时,所有内容的结果都是空或零。任何人都知道这是为什么?我认为这很简单,但我不确定是什么...}