带toString()的私有变量

时间:2013-06-20 18:26:43

标签: java

大家好我正在创建一个购物车程序,我正在尝试创建一个toString()方法。

这是我的GolfHat课程

package ShoppingCart;

public class GolfHat extends Product {

    private String name;
    private String colour;
    private String make;
    private double price;

    public GolfHat(String type, String make, String name, String colour,double price) {

        this.type = "hat";
        name = name;
        colour = colour;
        make = make;
        price = price;

    }

我的产品类是这个

package ShoppingCart;

public class Product {

    public String type ;

    public  String toString (){
        if (type=="hat" ) {

            System.out.println ("Type: " + type + "\t" + "Make: " + make);
            return type;
        }

        if (type=="Glove"){

        }
            return "cant find";

    }

它不会让我使用make变量,我认为它不会让我这样做因为我的变量是私有的但是对于我的评估的一部分我需要展示一个包围和im struggerling的例子,看看我还会在哪里能够做到这一点

3 个答案:

答案 0 :(得分:1)

第一次编译错误:

System.out.println ("Type: " + type + "\t" + "Make: " + make);

Product没有make实例变量。它的子类GolfHat声明了变量。子类继承了超类的非私有成员,它不会反过来。

逻辑错误:

if (type=="Glove"){

    }

这是比较String内容的错误方法。请改用equals()方法。

if ("Glove".equals(type)){

    }

答案 1 :(得分:0)

您应该向toString

添加覆盖golfHat方法
public class GolfHat extends Product 
{
    public String toString ()
    {
        // you can use make here
    }
}

答案 2 :(得分:0)

Golfhat是Product的子类。产品对make一无所知,也不应该知道。 您可以从inheritance tutorial

开始阅读