错误说我的方法未定义

时间:2013-07-29 03:27:06

标签: java

好的,我正在关注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 个答案:

答案 0 :(得分:5)

你有3个错误:
第一:从此处删除'*':System.out.println("Your remaining water level is:"* + waterBottle.getWater());

第二:objectIntro中的方法是addWater,您用作waterBottle.addwater(100);('W'必须被捕获)

和第三个:objectIntro中的另一种方法是drinWater,但您再次使用不正确:waterBottle.drinkWater(20);(额外'k')

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

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

答案 1 :(得分:3)

拼写错误

使用addWater代替addwater

我认为你应该检查java命名约定here

特别naming变量说

  

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

     

变量名称应该简短而有意义。选择一个   变量名应该是助记符 - 即设计用于指示   不经意的观察者使用它的意图。单字符变量名称   应该避免除临时"一次性"变量。共同   临时变量的名称是整数的i,j,k,m和n; C,   d,和字符的e。

答案 2 :(得分:3)

waterBottle.addWater(100); 

而不是

waterBottle.addwater(100); 

有意义的方法名称惯例here

答案 3 :(得分:1)

后期案例错误waterBottle.addwater(100);方法

addWater(int amount)

使用

waterBottle.addWater(100); 

同时从

中删除*
System.out.println("Your remaining water level is:"* + waterBottle.getWater());