Java 基础¶
本节将介绍在 FRC 比赛中会用到的 Java 语言基础知识。由于 C++ 并非主流语言,故暂时不作介绍,欢迎贡献。
本节有部分内容参考 Java 速成 - OI Wiki,致谢!
关于 Java¶
Java 是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛用于应用开发及机器程序。
安装环境¶
WPILib VSCode 已经提供了所需的环境,故无需额外安装。
文件结构¶
一个典型的 FRC Command-Based 程序结构如下所示:
—— /
———— .vscode
———— .wpilib
———— gradle
———— src
—————— main
———————— deploy
———————— java
—————————— frc
———————————— robot
—————————————— commands
———————————————— // some commands here...
—————————————— subsystems
———————————————— // some subsystems here...
—————————————— Constants.java
—————————————— Main.java
—————————————— Robot.java
—————————————— RobotContainer.java
———— vendordeps
———— .gitignore
———— build.gradle
———— gradlew
———— gradle.bat
———— settings.gradle
所有代码理论上都写在 /src
目录中。
基本语法¶
主函数¶
Java 类似 C/C++ 语言,需要一个函数(在面向对象中,称为方法)作为程序执行的入口点。
如上格式是 Java 主函数的固定格式。
一个打包的 Java 程序中可以有很多类似的函数,但是整个程序运行时,只有一个函数会被运行,它被定义在 Jar
的 Manifest
文件中。这个知识在 FRC 比赛中用不到。
注释¶
和 C/C++ 一样,//
是单行注释, /* */
是多行注释。
数据类型¶
部分数据类型和 C/C++ 名称不太一致,需要注意。这里仅列出常用的部分。
类型名 | 意义 |
---|---|
boolean | 布尔 |
int | 整数 |
float | (单精度)浮点数 |
double | (双精度)浮点数 |
String | 字符串 |
char | 字符 |
null | 空 |
声明变量¶
int a = 12;
String str = "Hello World! ";
char ch = 'W';
final double PI = 3.1415926;
String name = null;
final
关键字¶
final
指该变量只能被赋值一次,不能再改变。
final
与 C/C++ 中的 const
类似。
数组¶
字符串¶
字符串和字符数组基本相同。
String a = "CNFRC";
char[] stringArray = {'C', 'N', 'F', 'R', 'C'};
String s = new String(stringArray);
包和包的导入¶
Java 中的类都放在一个个包中,一个包中不能有同名的类,在类的第一行需要说明这个类属于哪个包(除根目录外),如:
创建一个包时(一般 FRC 不会用到),命名规范一般是 所有者的顶级域.二级域.项目名称
。
不属于同一个包的类需要使用 import
关键字引入。
其中,*
是通配符,即引入该包内的所有类。
输入¶
FRC 不会使用到命令行输入,而是通过特有的方式使用手柄输入。
输出¶
Java 可以使用格式化输出 printf
,也可以使用普通输出 print
/ println
。格式化输出与 C/C++ 相同,不再介绍。
int a = 1;
System.out.printf("%d\n", a);
System.out.print(a); System.out.print('\n');
System.out.println(a);
流程控制¶
Java 的流程控制语句和 C/C++ 几乎完全相同,不再介绍。
- if
- if...else
- if...else if...else
- switch...case
- for
- while
- do...while
注意事项¶
类名和文件名相同¶
对于 Add.java
:
命名规范¶
类名¶
Java 的类名必须由大写字母开头,而若跟有多个单词,每个单词的首字母大写,其他字母全部小写。
方法名¶
Java 的方法必须小写字母开头,而若跟有多个单词,每个单词首字母大写,其他全部小写。
常量¶
一般而言,常量采用全部大写的形式。
变量名¶
变量名使用小写开头。
包¶
包名所有字母必须小写。