流行的编译错误

All lectures for ZH purposes
第 1 级 , 课程 589
可用

1.忘记分号

有抱负的 Java 程序员最常犯的错误与分号有关。或者更确切地说,它不在应该在的地方。

方法中的每个语句都必须以分号结尾。分号用于分隔语句或命令:这就是我们告诉 Java 编译器一个命令结束和下一个命令开始的方式。

错误示例:

不正确的代码 正确的代码
int a
int b = 5
int c = a + b
int a;
int b = 5;
int c = a + b;
System.out.println("Hello")
System.out.println("Hello");
if (2 > 3)
   System.out.println("Are we in Australia?")
if (2 > 3)
   System.out.println("Are we in Australia?");


2.忘记关闭报价

Java 新手第二个最常见的错误是在代码中写了一个字符串,然后忘记关闭引号。

代码中的每个字符串文字都必须用双引号 (") 括起来。初学者经常在文本的开头加上引号,但他们忘记在末尾将引号括起来。

这里有些例子:

不正确的代码 正确的代码
String s = "Hello;
String s = "Hello";
System.out.println("Hello);
System.out.println("Hello");
String s = "Hello";
String message = s + " and by. ;
String s = "Hello";
String message = s + " and bye.";


3. 将字符串粘合在一起时忘记包含加号

使用字符串时的另一个常见错误是在将字符串粘合在一起时忘记写加号。当文本和变量在代码中的长表达式中连接时,此错误尤其普遍。

这里有些例子:

不正确的代码 正确的代码
String s = "Hello";
String message = s  " and bye.";
String s = "Hello";
String message = s + " and bye.";
int age = 35;
System.out.println("Age=" age);
int age = 35;
System.out.println("Age=" + age);
int age = 35;
System.out.println("Age=", age);
int age = 35;
System.out.println("Age=" + age);


4. 忘记关闭大括号

这是一个很常见的错误。有两种情况是典型的:

第一种情况:您决定从某处复制代码,但不小心遗漏了一些大括号。第二种情况:您只是不想麻烦自己确保每个左括号都与右括号匹配。

为避免这些错误,通常建议初学者在左大括号下方写上右大括号。

例子:

不正确的代码 正确的代码
if (2 < 3)
{
   if (3 < 4)
   {
      System.out.println("Mathematics!");
   }
if (2 < 3)
{
   if (3 < 4)
   {
      System.out.println("Mathematics!");
   }
}
{
   if (2 < 3)
   {
      if (3 < 4)
      {
         System.out.println("Mathematics!");
      }
   }
{
   if (2 < 3)
   {
      if (3 < 4)
      {
         System.out.println("Mathematics!");
      }
   }
}


5.忘记加括号

大多数情况下,这个错误是由了解在类似情况下不需要括号的编程语言的开发人员犯的。

一种可能是他们只是忘记在方法调用的末尾加上括号:

另一种可能是他们忘记将语句的条件括if-else在括号中。

例子:

不正确的代码 正确的代码
System.out.println("Hello!");
System.out.println;
System.out.println("And bye!");
System.out.println("Hello!");
System.out.println();
System.out.println("And bye!");
if 2 < 3
{
   if 3 < 4
   {
      System.out.println("Mathematics!");
   }
}
if (2 < 3)
{
   if (3 < 4)
   {
      System.out.println("Mathematics!");
   }
}


6.main方法声明写错

他们一宣布血腥main手段!可能没有什么比这种糟糕的方法更让新手感到困惑的了。重要的是,他们总是很惊讶,想知道为什么他们的程序无法启动?

当然,程序员不应该受到指责,但程序、编译器、代码验证器、Java 机器等等。替罪羊的名单是无穷无尽的。

例子:

不正确的代码 解释
static void main(String[] args)
public不见了
public void main(String[] args)
static不见了
public main(String[] args)
void不见了
void main(String[] args)
public并且static失踪了
public static void main(String args)
[]不见了
public static void main()
String[] args不见了
public static int main(String[] args)
我们有int而不是void


7.文件名与类名不同

根据 Java 标准,所有的 Java 类都必须存储在一个与类名同名的文件中。如前所述,字母的大小写在这里很重要:

文件名 班级名称 笔记
Solution.java
Solution
一切安好
Solutions.java
Solution
文件名有一个多余的字母s
solution.java
Solution
文件名以小写字母开头
Solution.txt
Solution
文件扩展.txt名不是.java
Solution.java
solution
类名以小写字母开头

实际上,可以在一个扩展名为.java 的文件中声明多个类,但其中只有一个public类名前可以有这个词。这是必须与文件名匹配的名称。

.java 文件必须始终有一个名称与文件名相同的类,并且该类需要有修饰符public。例子:

解决方案.java
public class Solution
{
}

class Apple
{
}

class Pineapple
{
}

此外,Java 语言允许您在类中编写类。这是绕过上述限制的另一种方法。如果在文件中声明了一个公共类(带修饰符的类public)并且与文件名同名,那么你可以在这个公共类中声明任意多个类。也就是说,这些将不再是普通课程。相反,它们将是内部类或嵌套类。例子:

解决方案.java
public class Solution
{
   public class Apple
   {
   }

   public static class Pineapple
   {
   }
}


8.忘记写package

由于程序通常有数千个类,因此很难为所有类找到简单、易懂且唯一的名称。这就是为什么在 Java 中习惯使用package关键字将类分组到包中。正是文件分组到文件夹中的方式。

这就是为什么每个类都应该以它所属的包的指示开始。例子

无包代码 更正示例
public class Solution
{
}
package com.codegym.tasks.task0001;

public class Solution
{
}


9.忘记添加import

如果我们想在我们的程序中使用别人的类,我们有两个选择:在我们的代码中的任何地方,我们也必须在类名之前写上它的包名。import或者,我们可以用关键字写一次完全限定的类名。

例子:

不使用导入 使用导入
public class Solution
{
   java.util.Scanner scanner = new java.util.Scanner();
}
import java.util.Scanner;

public class Solution
{
   Scanner console = new Scanner();
}

这两个选项都有效,但是如果您只是简单地编写Scanner代码而不添加import,那么编译器将无法理解它需要Scanner从哪个包中获取类,并且您的程序将无法编译。


评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION