为何这段Java代码持续出现「找不到符号」错误?
问题分析与修复方案
报错核心原因
你这段代码的问题其实很直白——你在main方法里错误引用了一个不存在的实例变量product。
先看你的Store类定义:
public class Store { // 注意:类的实例变量是productType,不是product! String productType; int inventoryCount; double inventoryPrice; // 构造方法里只是把参数product的值赋值给了实例变量productType public Store(String product,int count,double price) { productType = product; inventoryCount = count; inventoryPrice = price; } public static void main(String[] args) { Store cookieShop = new Store("cookies",12,3.75); // 这里写错了变量名,应该是productType而非product System.out.println("my cookie shop menu " + cookieShop.product); } }
编译器抛出「找不到符号: 变量 product」的错误,本质是Store类根本没有定义名为product的实例变量,你写的product只是构造方法的参数名,和实例变量productType完全是两个东西。
快速修复方案
只需要把main方法里的变量引用改成正确的productType即可:
System.out.println("my cookie shop menu " + cookieShop.productType);
额外优化建议
如果怕以后再搞混参数名和实例变量名,Java里可以用this关键字明确指代当前对象的实例变量,让代码可读性更强,也能避免类似错误:
public Store(String product,int count,double price) { this.productType = product; this.inventoryCount = count; this.inventoryPrice = price; }
内容的提问来源于stack exchange,提问作者Saiyam Sanghavi
相关产品推荐
相关产品推荐

