java - 从另一个类调用方法时遇到问题

标签 java class object methods

下面是我的类文件 Rectangle 和带有 main 方法的类文件 testRectangle 。现在,在 testRectangle 中,当我调用“矩形”类中的“周界”方法时,我收到一条错误消息。我收到的错误消息指出,“将‘perimeter()’的修饰符更改为‘static’。该方法不能是静态的,因为我在主方法中将有几个不同的矩形对象。我做错了什么吗?有任何帮助吗?不胜感激。

矩形.java

public class Rectangle {
    private  int length;
    private  int width;

    Rectangle(int len, int wid) {
        length = len;
        width = wid;
    }
    public int perimeter(Rectangle rec){
        int p = 2*length + 2* width;
        return p;
    }
}

testRectangle.java

    public class testRectangle {

        public static void main(String[] args) {
            Rectangle r1 = new Rectangle(5,4);
            int r1Perimeter = Rectangle.perimeter(r1);
 //the line above this is where I get the error message
 //the red squiggly line goes under "Rectangle.perimeter(r1);
        }

    }

最佳答案

您必须在 Rectangle 对象上调用该方法。因为,perimeter() 是一个实例方法,所以您必须调用一个实例。

如果perimeter()是一个静态方法,那么你可以用Class来调用它,比如Rectangle.perimeter(r1);

int r1Perimeter = r1.perimeter(r1);

并且不需要在那里传递 Rectangle 对象,定义如下 perimeter() 方法

public int perimeter(){
   int p = 2*length + 2* width;
   return p;
}

关于java - 从另一个类调用方法时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23353284/

相关文章:

javascript - 对象属性作为哈希函数中的键值对

java - 使用 xml 中的 dom4j 在指定位置添加新节点

java - Gradle -compileTestGroovy 无法解析主应用程序类

java - 使用 Java 解析 Facebook signed_request 返回格式错误的 JSON

java - 在类对象的构造函数中插入 Date 参数

object - java中RSA加密的替代方案

java - JPA双向@ManyToMany关系: Assignment causes two inserts

C# 使用命名空间

用于打印 bash 颜色的 python 类

java - 如何从文件中读取和重写单例对象?