Java古法入门到精通

第一章:编写第一个程序

1.1 Java 程序基本结构

java 复制代码
package cn.comicjava.ch01;

public class WoWTextadventure {
    public static void main(String[] args) {
        // 代码逻辑
    }
}
  • package: 包声明
  • class: 类定义
  • main : 程序入口,接收 String[] args 作为命令行参数

1.2 命令行参数

java 复制代码
public static void main(String[] args) {
    System.out.println(args[0]);  // 访问第一个参数
}

运行:java -cp bin cn.comicjava.ch01.WoWTextadventure Pkmer

默认值处理

java 复制代码
args.length > 0 ? args[0] : "Pkmer"

1.3 文本块 (Text Blocks) - Java 15+

使用 """ 定义多行字符串,配合 formatted() 插入变量:

java 复制代码
System.out.println("""
        你好 %s 欢迎来到魔兽世界。
        """.formatted(name));

1.4 输入输出

输出

java 复制代码
System.out.println("普通信息");   // 标准输出
System.err.println("错误信息");  // 错误输出

输入

java 复制代码
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String command = reader.readLine();

注意readLine() 返回 null 表示输入流结束(EOF)

  • Windows: Ctrl+Z + Enter
  • Linux/Mac: Ctrl+D

1.5 switch 表达式 - Java 14+

java 复制代码
switch (command.toLowerCase()) {
    case "n" -> System.out.println("向北走");
    case "s" -> System.out.println("向南走");
    case "i" -> System.out.println("查看背包");
    case "q" -> {
        // 多行逻辑
        System.exit(0);
    }
    default -> System.err.println("未知操作");
}

箭头语法 (->) 替代传统冒号,更简洁。

1.6 字符串处理

  • 拼接 : "Hello " + name
  • 格式化 : "Hello %s".formatted(name)

1.7 程序结束

java 复制代码
System.exit(0);  // 正常退出,非 0 表示异常退出

练习项目

WoWTextadventure - 命令行魔兽世界文字冒险游戏

WoWTextadventure.java

功能:

  • N/O/S/W 移动
  • I 查看背包
  • Q 退出游戏
相关推荐
程序员JerrySUN2 分钟前
Jetson Edge AI 实战01:Nano、Xavier、Orin 怎么选?Jetson 硬件选型详解【视频讲解】
java·数据库·redis·安全·mybatis
Joy T1 小时前
Spring AI 2.0 Agent 进阶:Memory、State 与 Context Engineering 常见技术全景
java·人工智能·后端·spring·agent入门·agent state
估值探索者1 小时前
【Python量化系统工程化 #08】关了 SSH 就停?systemd 让脚本开机自启 + 异常自动拉起
java·c++·人工智能·分类·数据挖掘
天若有情6731 小时前
C++花式魔改!手写头文件复刻Java语法,彻底打破编码思维定式
java·c++·语言做语言·jac++
西峰u3 小时前
Java单例模式|从基础到多线程安全
java·java单例模式
ClinicTech3 小时前
实验室洗瓶机的清洗系统架构与自动化控制解析
java·python
linmengmeng_13143 小时前
【总结】MyBatis-Plus批量插入与清表的正确姿势
java·spring boot·mysql·mybatis
木井巳3 小时前
【记忆化搜索】不同路径
java·算法·leetcode·深度优先·剪枝·推荐算法
Sam_Deep_Thinking3 小时前
new Thread()之后发生了什么?
java·后端·面试·程序员
泡海椒3 小时前
规则引擎对比:JQuick-Java vs Drools 轻量场景选型对比
java·开发语言