“嘿,小新兵,天天犯一堆错误,最简单的程序也不行!

“嗯……嗨,迪亚哥。小子,你真会让人开心!”

“当然,我知道!学习如何说出需要说的话。就像我说的,‘每一天’。更礼貌地说,我的问候意味着“未来成功的程序员,当然,如果你没有搞砸的话”

“哦,那好吧,谢谢你,我最有金属感的老师! .

“学完这节课你会感谢我的。在这里,我将列出编译器注意到的最常见的错误。你的工作是记住。预先警告是预先准备好的。

忘记分号

“有抱负的 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?");

忘记关闭报价

“对于 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.";

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

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

这里有些例子:

不正确的代码 正确的代码
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);

忘记关闭大括号

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

  1. 您决定从某处复制代码,但不小心遗漏了一些大括号。
  2. 您根本不需要麻烦自己来确保每个左括号都与右括号相匹配。”

“第二种选择是我所做的。有时我太过分了以至于忘记了!” .

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

例子:

不正确的代码 正确的代码
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!");
      }
   }
}

忘记加括号

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

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

另一种可能是他们忘记将语句的条件括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!");
   }
}

错误地编写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

文件名与类名不同

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

文件名 班级名称 笔记
解决方案.java 解决方案 一切安好
解决方案.java 解决方案 文件名作为一个多余的字母's'
解决方案.java 解决方案 文件名以小写字母开头
解决方案。TXT 解决方案 文件扩展名为 .txt 而不是 .java
解决方案.java 解决方案 类名以小写字母开头

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

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

解决方案.java
public class Solution
{
}

class Apple
{
}

class Pineapple
{
}

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

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

   public static class Pineapple
   {
   }
}

忘记写package

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

“啊哈,所以这就是为什么每个班级都应该以它所属的包的指示开始。”

“完全正确。这是一个例子:

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

public class Solution
{
}

忘记添加import

“如果我们想在我们的程序中使用别人的类,我们有两个选择:在我们的代码中的任何地方,我们还必须在类名之前写它的包名。或者,我们可以用关键字 once 写完全限定类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从哪个包中获取类,你的程序将无法编译。”

“谢谢你,迭戈。这一节课会让我更加专心。”

“这就是我所指望的。祝你好运!”