卡卡编程网

专注编程技术分享,涵盖开发教程与实战案例

JAVA入门教程-第2章 基本编程概念

大道至简在本教程中,Java 语言的一些基本编程概念。我们从一些简单的程序开始,涉及变量、常量和基本数据类型,讲解控制台的读写操作,同时也会提及字符串格式化。

Java 简单示例

我们从一个非常简单的代码示例开始。以下代码需放入Simple.java文件中,此处命名很重要 ——Java 程序的公共类名必须与文件名一致。

// com/test/Hello.java  
package com.test;  
  
public class Hello {  
  
    public static void main(String[] args) {  
  
        System.out.println("This is Java");  
    }  
}

Java 代码从一开始就有严格的组织规则:一个 Java 代码文件可以包含一个或多个类,但其中只能有一个类被声明为public。

包(Package)

package com.hello;

包用于将 Java 类按功能分组,类似于其他编程语言中的命名空间或模块。对于简单示例,包声明可以省略(此时会创建默认包),但本教程中所有示例都使用包。另一个要点是:目录结构必须与包名一致。例如,包名为com.test的源文件Hello.java必须放在com/test/目录下,且package语句必须是源文件的第一行。

类(Class)

public class Simple {  
   ...  
}

类是 Java 程序的基本构建块。public关键字表示该类可被无限制访问。上述代码是一个类定义,其主体以左花括号{开始,右花括号}结束。一个源文件中只能有一个public类。
此外,类名必须与文件名一致(如Hello.java对应类Hello),且类名通常以大写字母开头。

主方法(main method)

public static void main(String[] args) {  
    ...  
}

main是一个方法,用于启动程序,是每个控制台 Java 程序的入口点。方法是为完成特定任务而编写的代码块,能使程序更具模块化。

  • static:静态方法,无需创建类的实例即可调用;
  • void:表示方法不返回值;
  • public:使主方法可被外部无限制访问。

控制台输出

System.out.println("This is Java");

在主方法中,该语句将字符串字面值"This is Java"打印到控制台。每条语句必须以分号;结尾。这是一个方法调用:调用System类的println方法,System类代表控制台应用的标准输入、输出和错误流。

执行程序

$ java Simple.java  
This is Java

使用java工具执行程序(Java 11 及以上支持直接执行单个源文件)。

Java 控制台读取输入

第二个示例展示如何从控制台读取值:

// com/test/ReadLine.java  
package com.test;  
  
import java.util.Scanner;  
  
public class ReadLine {  
  
    public static void main(String[] args) {  
  
        System.out.print("Write your name:");  
  
        Scanner sc = new Scanner(System.in);  
        String name = sc.nextLine();  
  
        System.out.println("Hello " + name);  
    }  
}

程序会在终端显示提示,用户输入姓名后,值会被读取并打印回终端。

导入类(Import Class)

import java.util.Scanner;

Java 标准库中的类按包组织,Scanner类用于读取输入。使用import关键字导入类后,可直接使用类名(无需完整包名)。

打印提示

System.out.print("Write your name:");

print方法打印消息但不换行,用户可在消息后直接输入。

创建 Scanner 实例

Scanner sc = new Scanner(System.in);

使用new关键字创建Scanner对象,参数System.in表示从标准输入流(终端)读取数据。Scanner可解析基本类型和字符串。

读取输入

String name = sc.nextLine();

调用nextLine方法读取终端输入的一行内容,返回值存储在String类型的变量name中。

输出结果

System.out.println("Hello " + name);

使用+运算符拼接字符串和变量,打印结果。

$ java ReadLine.java  
Write your name:John Doe  
Hello John Doe

Java 命令行参数

Java 程序可接收命令行参数,参数在运行程序时跟随在程序名之后:

// com/test/CommandLineArgs.java  
package com.test;  
  
public class CommandLineArgs {  
  
    public static void main(String[] args) {  
  
        for (String arg : args) {  
  
            System.out.println(arg);  
        }  
    }  
}

主方法参数

public static void main(String[] args)

主方法接收一个String数组args,用于存储命令行参数。数组是数据的集合,声明格式为类型[] 变量名。

遍历参数数组

for (String arg : args) {  
    System.out.println(arg);  
}

使用增强型for循环遍历数组,依次打印每个参数。循环次数等于数组元素个数,每次循环将数组元素赋值给arg变量。

$ java CommandLineArgs.java 1 2 3 4 5  

Java 变量

变量是存储数据的空间,包含名称和数据类型,数据类型决定了变量可存储的值(如整数、字符串、布尔值等)。Java 中,变量在使用前会被初始化为其类型的默认值。

// com/test/Variables.java  
package com.test;  
  
public class Variables {  
  
    public static void main(String[] args) {  
  
        String city = "New York";  
        String name = "Paul"; int age = 34;  
        String nationality = "American";  
  
        System.out.println(city);  
        System.out.println(name);  
        System.out.println(age);  
        System.out.println(nationality);  
  
        city = "London";  
        System.out.println(city);  
    }  
}
  • String city = "New York";:声明String类型变量city并初始化为"New York";
  • String name = "Paul"; int age = 34;:可在同一行声明多个变量(建议每行一条语句以提高可读性);
  • city = "London";:变量可重新赋值。
$ java Variables.java  
New York  
Paul  
34  
American  
London

var 关键字(Java 10+)

对于有初始值的局部变量,可使用var关键字替代数据类型,编译器会从初始化值推断类型:

// com/test/VarKeyword.java  
package com.zetcode;  
  
public class VarKeyword {  
  
    public static void main(String[] args) {  
  
        var name = "John Doe";  
        var age = 34;  
  
        System.out.println(name + " is " + age  + " years old");  
    }  
}

var name = "John Doe";中,编译器推断name为String类型;var age = 34;中推断age为int类型。使用var时必须初始化变量。

Java 常量

常量与变量不同,其初始值不可修改,使用final关键字声明:

// com/test/Constants.java  
package com.zetcode;  
  
public class Constants {  
  
    public static void main(String[] args) {  
  
        final int WIDTH = 100;  
        final int HEIGHT = 150;  
        int var = 40;  
  
        var = 50;  
  
        // WIDTH = 110;  // 编译错误:无法修改final变量  
    }  
}
  • final int WIDTH = 100;:声明常量WIDTH,约定常量名用大写字母;
  • 若取消注释WIDTH = 110;,会报错:无法为final变量WIDTH赋值。

Java 字符串格式化

在编程中,从变量构建字符串是常见需求。Java 通过String.format方法实现字符串格式化(不支持动态语言的变量插值):


// com/zetcode/StringFormatting.java  
package com.zetcode;  
  
public class StringFormatting {  
  
    public static void main(String[] args) {  
  
        int age = 34;  
        String name = "William";  
  
        String output = String.format("%s is %d years old.", name, age);  
  
        System.out.println(output);  
    }  
}
  • %s:字符串占位符,对应name变量;
  • %d:整数占位符,对应age变量。
$ java StringFormatting.java  
William is 34 years old.
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言