加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java初学者问题:下面的代码有什么问题?

发布时间:2020-12-15 02:02:45 所属栏目:Java 来源:网络整理
导读:public class Function{ public static void main(String args[]) { System.out.println(power(3,2)); System.out.println(power(3,2)); System.out.println(power(2)); } public long power(int m) { return m*m; } public long power(int m,int n) { long
public class Function
{
   public static void main(String args[])
   {
      System.out.println(power(3,2));
      System.out.println(power(3,2));
      System.out.println(power(2));
   }
   public long power(int m)
   {
      return m*m;
   }
   public long power(int m,int n)
   {
      long product=1;
      for(int i=1;i<=n;i++)
      {
          product=product*m;
      }
      return product;
   }
}

编译器显示此错误: –

Function.java:5:无法从静态上下文引用非静态方法power(int,int)

[编辑]

对于缩进的事情很抱歉:/从现在开始我会记住这一点.

好的,我刚刚添加了静态关键字,现在工作正常.这个静态关键字有什么区别?我是java的初学者,还没有研究静态做什么.我肯定会在本书的后续章节中阅读它,但有人请告诉我它的作用.谢谢.

解决方法

一个快捷方法(没有完整的背景说明)是静态方法/函数不能调用非静态方法/函数,所以你想从main函数调用的任何东西都需要在它前面有static关键字.

核心问题是Java是一种面向对象的语言,静态与非静态需要相当多的对象导向的先决条件知识. Java的一个缺点是它确实需要初学者在学习时跳过这种类型的几个环节,这一切都源于Java的面向对象特性,一旦你理解了OO,它就会全部落到实处(语言设计者做出的决定不一定是最好的,但它们是合乎逻辑的)

如果我不解释静态是什么,我希望你不会发现它的光顾.我可以告诉你,这不是一个特别困难的概念,但它仅仅依赖于一些OO概念的构建块,并且过早尝试解释(无论如何我)可能会让你失望.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读