[英]Printing out return value from a method
我正在學習Java,現在開始繼承。 但是我不知道如何打印出方法的返回值。
我有Circle.java超類
public class Circle
{
private double radius;
public Circle()
{
radius = 1.0;
}
public double getRadius()
{
return radius;
}
public void setRadius( double r )
{
radius = r;
}
public double findArea()
{
return Math.pow(radius , 2)*Math.PI;
}
}
和Cylinder.java子類
public class Cylinder extends Circle
{
private double height;
public Cylinder()
{
super();
height = 1.0;
}
public void setHeight( double h )
{
height = h;
}
public double getHeight()
{
return height;
}
public double findVolume()
{
return findArea() * height;
}
}
但是,當我在Cylinder子類中添加主要方法和System.out.println(findVolume())時,我得到“無法從Cylinder類型對非靜態方法findVolume()進行靜態引用”。 任何幫助都會很棒
在main
方法中,您位於類范圍內,而不是實例范圍內。 為了訪問實例方法,您需要對類的實例進行操作:
public static void main(String[] args) {
Cylinder cylinder = new Cylinder();
cylinder.setHeight(10);
cylinder.setRadius(30);
System.out.println(cylinder.findVolume());
}
這與繼承無關。
錯誤消息很清楚。 main
方法是靜態的, findVolume
不是靜態的,您不能直接從靜態方法引用非靜態方法。
相反,您應該創建一個Cylinder
實例並在此實例上調用findVolume
:
Cylinder cylinder = new Cylinder();
// set values
System.out.println(cylinder.findVolume())
那是因為主要方法是靜態的。 您嘗試調用對象方法而不創建實例。
這是應該如何工作的:
public static void main(String[] args){
Cylinder cylinder = new Cylinder();
System.out.println(cylinder.findVolume());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.