类 - Java中的内部类和属性

  • 本文关键字:内部类 属性 Java java
  • 更新时间 :
  • 英文 :


我一直在试图做一个包括内部啤酒的瓶类。为什么"瓶子"外级"瓶子"中的啤酒无效?这样的"私人'啤酒"领域从未分配?

这是我的代码

public class Bottle {
    private Beer beer; //THE PROBLEM IS IN THIS LINE//
    private double volume;

    public Bottle () {
    }
    public Beer getBeer {return beer;}
    public void Beer setBeer(Beer beer){return beer;}
    public double getVolume {return volume};
    public void setVolume (double volume) {return this.volume = volume;}

    public class Beer {
        private String brandName;
        private double strength;
        public Beer (String brandName, double strength) {
            this.brandName = brandName;
            this.strength = strength;
        }
        public String getbrandName() {return brandName;}
        public void setbrandName(String brandName) {return this.brandName = brandName;}
        public double getstrength() {return strength;}
        public void setstrength(double strength) {return this.strength = strength;}
    }
}

您的代码没有一个问题,而是很多问题。主要是语法错误。我对其进行了更正以使其编译:

public class Bottle {
    private Beer beer = new Beer("Beck's", 5.1);
    private double volume;
    public Bottle () {
    }
    public Beer getBeer() { return beer; }
    public Beer setBeer(Beer beer) {return beer;}
    public double getVolume() { return volume; }
    public void setVolume(double volume) { this.volume = volume; }
    public class Beer {
        private String brandName;
        private double strength;
        public Beer (String brandName, double strength) {
            this.brandName = brandName;
            this.strength = strength;
        }
        public String getbrandName() {return brandName;}
        public void setbrandName(String brandName) { this.brandName = brandName;}
        public double getstrength() {return strength;}
        public void setstrength(double strength) { this.strength = strength;}
    }
}

正如Harmlezz所说,您有一些语法错误。您正在以各种get方法返回值,但将返回类型提及为void

纠正这些错误后,您可以在这样的瓶子对象中设置啤酒对象:

public static void main(String[] args) {
        Bottle bottle = new Bottle();
        Beer beer = bottle.new Beer("La La Beer", 2);
        bottle.setBeer(beer);
        System.out.println(beer.getbrandName());
    }

您的代码中有很多错误。

您应该做这样的事情

public class Bottle {
private Beer beer; 
private double volume;

public Bottle () {
}
public Beer getBeer() {
  return beer;
}
public void setBeer(Beer beer){
  this.beer = beer;
}
public double getVolume() {
  return volume;
}
public void setVolume (double volume) {
  this.volume = volume;
}

public class Beer {
    private String brandName;
    private double strength;
    public Beer (String brandName, double strength) {
        this.brandName = brandName;
        this.strength = strength;
    }
    public String getbrandName() {
      return brandName;
    }
    public void setbrandName(String brandName) {
      this.brandName = brandName;
    }
    public double getstrength() {
      return strength;
    }
    public void setstrength(double strength) {
      this.strength = strength;
    }
}
}

建议首先清除您的基础知识,例如如何编写功能,然后全部跳入代码。

最新更新