java - 在不使用java中的对象的情况下调用同一类的函数的正确方法是什么?
问题描述
java - 如何在不使用对象的情况下在java中调用同一类的函数?
我试过了,但出现错误:
'不能从静态上下文中引用非静态方法 facti(int)' System.out.print(facti(number));
public class Facto {
int i, fact =1;
int facti(int num){
if(num == 0){
System.out.print("For Zero ");
return 1;
}
else
for (i = 1; i <= num; ++i)
{
fact = fact * i;
}
return fact;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a number for factorial : ");
int number = sc.nextInt();
Facto f1 = new Facto();
System.out.println(f1.facti(number));
}
}
解决方案
简单的答案:你不能。您的主要方法是“静态的”,它只能调用其他静态方法(在同一类中)或对象的方法。因此,您也可以将“事实”设为静态。或者你创建一个对象: Facto f = new Facto(); f.facti(13); 并在该对象上调用 facti 。
推荐阅读
- java - 如何使用 DOCX4J 创建内部超链接
在将 JSON 请求转换为 HTML 请求后,我需要使用 DOCX4J 在 word 文档中为 TOC 创建超链接(
String HT
- c - 在 OpenMP 中取消初始化警告
- java - 如何从命令行导入随机数量的参数?
- python - 我正在阅读《自学程序员 ch17》这本书,但我不明白为什么这不起作用
- mysql - MySQL Workbench / 正向工程进度 - 错误
- reactjs - 使用 react 和 material-ui 控件显示选择控件的默认值
- css - 如果子组件的元素悬停,则使元素不可见
- c# - customcontrol:使用字符串设置文本而不是绑定;默认按钮,而不是相同的绑定工作
- angular - Ionic 4 / Angular - 验证突出显示超出本机输入字段
- c# - 在 C# 中运行时,Oracle 更新命令冻结