Java新手编写加法私有函数遇报错:变量未解析等问题求助
代码错误分析及修正
核心错误点
- 代码执行逻辑位置错误:Java类中,变量赋值、方法调用这类执行语句不能直接写在类的根层级,必须放在方法(比如
main方法)内部。 - 变量未声明类型:
outputMessageString未声明数据类型,Java是强类型语言,所有变量必须先明确类型才能使用。 - 静态与非静态成员冲突:
addTwoNumbersAndReturnAdditionResult是静态方法,直接访问类的非静态成员变量(number1Integer、number2Integer等)会触发编译错误,要么把成员变量改为静态,要么通过实例化对象调用非静态方法。
修正后的代码(静态成员方案)
import javax.swing.*; public class Note12FunctionExamples { // 改为静态变量,适配静态方法调用 static int number1Integer = 0; static int number2Integer = 0; static int additionResultInteger = 0; public static void main(String[] args) { number1Integer = 3; number2Integer = 4; additionResultInteger = addTwoNumbersAndReturnAdditionResult(number1Integer, number2Integer); // 声明String类型变量 String outputMessageString = number1Integer + " + " + number2Integer + " is: " + additionResultInteger; JOptionPane.showMessageDialog(null, outputMessageString); } private static int addTwoNumbersAndReturnAdditionResult(int number1Integer, int number2Integer) { int additionResultInteger = 0; additionResultInteger = number1Integer + number2Integer; return additionResultInteger; } }
可选修正方案(实例化对象方案)
如果不想将成员变量改为静态,可以通过实例化类对象来调用非静态方法:
import javax.swing.*; public class Note12FunctionExamples { int number1Integer = 0; int number2Integer = 0; int additionResultInteger = 0; public static void main(String[] args) { Note12FunctionExamples instance = new Note12FunctionExamples(); instance.number1Integer = 3; instance.number2Integer = 4; instance.additionResultInteger = instance.addTwoNumbersAndReturnAdditionResult(instance.number1Integer, instance.number2Integer); String outputMessageString = instance.number1Integer + " + " + instance.number2Integer + " is: " + instance.additionResultInteger; JOptionPane.showMessageDialog(null, outputMessageString); } // 去掉static修饰符,改为非静态方法 private int addTwoNumbersAndReturnAdditionResult(int number1Integer, int number2Integer) { int additionResultInteger = 0; additionResultInteger = number1Integer + number2Integer; return additionResultInteger; } }
内容的提问来源于stack exchange,提问作者jack pipkins
相关产品推荐
相关产品推荐

