0

好的,所以我正在关注BrandonioProdtuctions YouTube 频道上的 Java 教程和。我在第 7 部分:面向对象编程简介。我遇到的问题是,当我尝试运行程序时,它在我直接粘贴在下面的类(标题为 objectIntroTest)中出现错误。

public class objectIntroTest {
    public static void main(String[] args){
        String x = "Hello";
        objectIntro waterBottle = new objectIntro(0); 
        waterBottle.addwater(100); 
        waterBottle.drinkWater(20); 
        System.out.println("Your remaining water level is:"* + waterBottle.getWater());
    }
}

这是另一个名为“objectIntro”的类:

public class objectIntro {

    public objectIntro(){
        //Default constructor
    }
    public objectIntro(int waterAmount){
        twater = waterAmount;
    }

    int twater = 0; //This is how much water is in the water bottle
    public void addWater(int amount){
        twater = twater + amount;
    }
    public void drinWater(int amount){
        twater = twater - amount;
    }
    public int getWater(){
        return twater;
    }
}

这是我尝试运行程序时它给我的错误消息:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    The method addwater(int) is undefined for the type objectIntro
    The method drinkWater(int) is undefined for the type objectIntro
    The operator * is undefined for the argument type(s) String, int

    at objectIntroTest.main(objectIntroTest.java:6)

为什么会这样?

4

4 回答 4

5

您有 3 个错误:
首先:从此处删除“*”:System.out.println("Your remaining water level is:"* + waterBottle.getWater());

第二:您的方法objectIntroaddWater您使用的方法waterBottle.addwater(100);('W'必须大写)

第三个:你的另一种方法 objectIntrodrinWater,但你又用错了:(waterBottle.drinkWater(20); 额外的'k')

在编译之前要更加小心并检查运行时错误。

这是一个关于命名约定的网站:http:
//java.about.com/od/javasyntax/a/nameconventions.htm

于 2013-07-29T03:36:21.103 回答
3

拼写错误

使用addWater而不是addwater

我认为您应该在此处检查 java 命名约定

特别命名一个变量说

除变量外,所有实例、类和类常量都是大小写混合,首字母小写。内部单词以大写字母开头。变量名称不应以下划线 _ 或美元符号 $ 字符开头,即使两者都允许。

变量名应该简短而有意义。变量名的选择应该是助记符,也就是说,旨在向不经意的观察者表明其使用的意图。应避免使用单字符变量名称,临时“一次性”变量除外。临时变量的常用名称是 i、j、k、m 和 n,表示整数;c、d 和 e 用于字符。

于 2013-07-29T03:28:27.077 回答
3
waterBottle.addWater(100); 

代替

waterBottle.addwater(100); 

有意义的方法名称约定在这里

于 2013-07-29T03:29:15.530 回答
1

后一种情况错误waterBottle.addwater(100); 方法是

addWater(int amount)

利用

waterBottle.addWater(100); 

同时删除 * 从

System.out.println("Your remaining water level is:"* + waterBottle.getWater());
于 2013-07-29T03:32:28.457 回答