静态调用不了非静态,请问要怎么修改

img


第20行报错,请问要怎么修改,静态调用不了非静态,有没有人教一下,谢谢

你创建对象错了吧、Circle circle = new Circle (10.0)、你的构造方法参数是double类型的、你传进去int

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7718023
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:从键盘上输入两个整数,由用户回答它们的和,差,积,商和取余运算结果,并统计出正确答案的个数
  • 除此之外, 这篇博客: 用数组来进行头插法,尾插法,删除,修改,查询,遍历数据中的 首先创建一个数组,定义一个变量来控制数组元素的有限个数, 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 您还可以看一下 李月喜老师的企业微信开发自建内部应用开发篇课程中的 开发文档如何阅读,如何寻求帮助,如何找到同行小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    答案:

    Java中只支持值传递,当一个对象被当作参数传递到一个方法,参数的值就是对该对象的引用。因此,在静态方法中调用非静态方法需要将对象作为参数传递给静态方法,然后进行调用。

    具体的操作:

    1. 创建一个方法,该方法需要传入一个对象作为参数,并调用该对象的非静态方法。
    public static void callNonStaticMethod(MyClass obj){
        obj.nonStaticMethod(); // 调用传入对象的非静态方法
    }
    
    1. 在静态方法中,创建该对象并调用上一步中定义的方法
    public static void myStaticMethod() {
        MyClass obj = new MyClass(); // 创建对象
        callNonStaticMethod(obj); // 调用定义的方法
    }
    

    完整代码示例:

    public class MyClass {
        // 静态方法
        public static void myStaticMethod() {
            MyClass obj = new MyClass(); // 创建对象
            callNonStaticMethod(obj); // 调用定义的方法
        }
    
        // 非静态方法
        public void nonStaticMethod() {
            System.out.println("This is a non-static method");
        }
    
        // 创建一个方法,该方法需要传入一个对象作为参数,并调用该对象的非静态方法
        public static void callNonStaticMethod(MyClass obj){
            obj.nonStaticMethod(); // 调用传入对象的非静态方法
        }
    
        public static void main(String[] args) {
            myStaticMethod(); // 调用静态方法
        }
    }