Lesson 02
基础认知Introduction
第一个程序
1 2 3 4 5 6 7 <import io.zzax.jadeite.console.Console; public class Main { public static void main(String[] args) { Console.println("Hi, ZZAX"); }}Hi, ZZAX
敲代码时
有提示时按回车
import
会自动导入
检查
检查字节码文件
控制台直接运行字节码
Java 原生态写法
1 2 3 4 5 <public class Main { public static void main(String[] args) { System.out.println("Hi, ZZAX"); }}Hi, ZZAX
顺序执行
所有的程序代码, 都会从程序入口处, 开始一行一行执行
1 2 3 4 5 6+7+8 9 < < <import io.zzax.jadeite.console.Console; public class Main { public static void main(String[] args) { Console.println("Hi, ZZAX"); Console.println("从来没见过"); Console.println("这么清晰的文档"); }}Hi, ZZAX从来没见过这么清晰的文档
注释Comments
单行注释
//
开始往右到这行结尾, 不视为代码
多行注释
/*
开始 到 下一个 */
之间, 不视为代码
样例
1 2 3*4 5 6+7+8+9+10 11 < <public class Main { public static void main(String[] args) { // Console.println("Hi, ZZAX"); Console.println("从来没见过"); Console.println("这么清晰的文档"); /* 爱写什么 就写什么 */ }}从来没见过这么清晰的文档
交互I/O
案例
1 2 3 4 5 6 7 8 9 10 import io.zzax.jadeite.console.Console; public class Main { public static void main(String[] args) { int v1 = Console.readInt(); int v2 = Console.readInt(); int sum = v1 + v2; Console.println(sum); }}
定义
input | 输入 | 用户 给 程序 |
---|---|---|
output | 输出 | 程序 给 用户 |
API
Console.readInt()
可以向用户索要一个整数
Console.println(x)
可以将 x 展示给用户
程序基本功能
输入 处理 输出
Java 原生态写法
1 2 3 4 5 6 7 8 9 10 11 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int v1 = scanner.nextInt(); int v2 = scanner.nextInt(); int sum = v1 + v2; System.out.println(sum); }}
规范
不影响程序执行的 行业规则
小提琴的故事
缩进
四个空格
增加缩进:tab
减少缩进:shift + tab
空格
观察
换行
不同的功能区 之间 加 空格
程序要求
Level 1 不犯语法错误
不飘红
Level 2 不犯规范错误
空格 换行 缩进 大小写 命名
Level 3 满足功能要求
完成商业逻辑
Level 4 结构设计合理
内部设计
变量Variables
基础
变量的作用
程序的记忆
变量的基本操作
声明
int v1;
开辟数据格 - 保险箱
赋值
v1 = Console.readInt();
往数据格里放东西
取值
int sum = v1 + v2;
之后再出现 v1
且 不在 等号 左边
计算机就会去 找 v1
查看 数据格里 的数据
变量声明的语法
格式
<变量类型> <变量名>; <变量类型> <变量名> = <值>;
例子
int a; int a = 1;
数据类型Data Types
常用数据类型
代码 | 名称 | 用途 |
---|---|---|
int | 整型 | 整数 |
double | 双精浮点类型 | 小数 |
String | 字符串 | 文字 |
尝试
让程序支持 对小数的操作
double v1 = Console.readDouble();
数据类型分类
类型 | 特征 |
---|---|
基础类型 | 小写开头,只有 8 种 |
对象类型 | 大写开头,有很多 |
8 个 基础类型
Primitive Data Types
byte short int long float double char boolean
字面量Literals
是什么
程序里出现的值
字面量数据类型
字面量 | 数据类型 |
---|---|
1 | int |
1.0 | double |
"1" | String |
数据类型匹配
规则
赋值时,等号右边的值 需要与 等号左边的变量类型 匹配
数据类型不匹配,编译会报错
1!2 int value = "abc";Console.println(value);
类型自动转换
基础数据类型中 除 boolean
外,数据类型可以不匹配
大类型数据格 接收 小类型数据值
数据会自动转换
1 2 <double value = 1;Console.println(value);1.0
强制类型转换
报错
基础数据类型中 除 boolean
外,数据类型可以不匹配
小类型数据格 接收 大类型数据值
编译会报错
1!2 int value = 1.0;Console.println(value);
签字声明
声明强制类型转换,让计算机闭嘴
1 2 <int value = (int)1.0;Console.println(value);1
数据丢失
精度可能会因此丢失
1 2 <int value = (int)1.7;Console.println(value);1
基础
变量的命名
重名
不能重名
大小写
大小写敏感
value
和 valuE
不是一个变量
规范
驼峰式命名
样例 | 正确 | 解说 |
---|---|---|
playerName | ✅ | 全小写,第二个单词起,首字母大写 |
PlayerName | ❌ | 每个单词首字母大写,一般是给自定义类型用的 |
playername | ❌ | 写它就很缺德 |
player_name | ❌ | Python 式命名,但这里是 Java |
bianLiang | 🆗 | 还好 |
clhs | 🚨 | 全缩写,找骂 |