class produce
{
public String name;
public double price;
public produce(String name,double price)
{
this.name=name;
this.price=price;
}
public String toString()
{
String s=name+"\t"+price;
return s;
}
}
class Sales extends produce
{
public int num;
public double discount;
public Sales(String name,double price,int num,double discount)
{
super(name,price);
this.num=num;
this.discount=discount;
}
private double cost()
{
double cost=super.price*num*discount;
return cost;
}
public String results()
{
String s="\t"+num+"\t"+discount+"\t"+cost();
return s;
}
}
public class UseSales
{
public static void main(String args[])
{
Sales s1=new Sales("比较本电脑",6999.99,200,0.9);
Sales s2=new Sales("激光扫描仪",1699,500,0.8);
Sales s3=new Sales("三合一打印机",888.88,150,0.8);
System.out.println("商品名称\t"+"单位价钱\t"+"销售数\t"+"折扣\t"+"实际\t");
System.out.println(s1+"\t"+s1.results());
}
}
里面的子类Sales的构造函数 Sale()中的为什么要用super(name,price),再问下那个this指的是什么?
{
public String name;
public double price;
public produce(String name,double price)
{
this.name=name;
this.price=price;
}
public String toString()
{
String s=name+"\t"+price;
return s;
}
}
class Sales extends produce
{
public int num;
public double discount;
public Sales(String name,double price,int num,double discount)
{
super(name,price);
this.num=num;
this.discount=discount;
}
private double cost()
{
double cost=super.price*num*discount;
return cost;
}
public String results()
{
String s="\t"+num+"\t"+discount+"\t"+cost();
return s;
}
}
public class UseSales
{
public static void main(String args[])
{
Sales s1=new Sales("比较本电脑",6999.99,200,0.9);
Sales s2=new Sales("激光扫描仪",1699,500,0.8);
Sales s3=new Sales("三合一打印机",888.88,150,0.8);
System.out.println("商品名称\t"+"单位价钱\t"+"销售数\t"+"折扣\t"+"实际\t");
System.out.println(s1+"\t"+s1.results());
}
}
里面的子类Sales的构造函数 Sale()中的为什么要用super(name,price),再问下那个this指的是什么?
this指的是Sales用他可以点出他的变量和方法的
this:指子类自己。
super(name,price)就相当于调用父类构造方法的意思.这句话必须放在构造函数的第一句执行.如果有默认构造函数,则可以省略.this指的当前类的对象的一个引用,比如说produce 类,如果在它里面用this,那么this就指的是它的一个实例,在那个类里面用就带表是那个类的一个具体对象
用java来表示this的话应该是这样(假设java还没有关键字this);class TestThis {
private TestThis this = new TestThis();
public TestThis() {
}
}我个人所见.....
super(name,price)是因为你的Sales类继承了produce类,也就继承了produce类的变量,也就是说你的Sales类里也有了name,price变量,调用super方法是给这两个变量的初始化
那个this指的是Sales的本实例
public Sales(String name,double price,int num,double discount)
{
//因为继承了produce,所以用super(name,price)显现的调用父类的构造函数,
//题外话,如果父类和子类同样有一个use的函数,而在子类中可能用super.use()来访问父类中的use函数
super(name,price);
//为什么在自己类中还有用this呢,感觉怪怪的是吧,
// 答案是因为你的参数 Sales(String name,double price,int num,double discount)
//看到括号里的int num,double discount的参数了吧,它和类中的定义的public int num; public double discount;的一样,为了以似区别,所以必须加上this
//不然,在你的构造函数里面,只不过是对参数的赋值
this.num=num;
this.discount=discount;
}