2. 一点基本语法
基础部分
1.输入输出
1.1.输入
next():读取一个单词
nextLine():读取一行(包括空格)
p.s. 从键盘接收到的数据只有字符串 String 类型,若想接收 char 类型可进行以下操作:
char c = reader.next().charAt(0);
//或者
String c = reader.next();
char c2 = c.toCharArray()[0];
1.2.输出
System.out.println():输出并换行
System.out.print():输出但不换行
2.标识符
用来标识类、方法、变量、数组、文件的有效字符序列称为标识符
不能是保留关键字
不能数字开头
不能包含空格
不能包含非法字符
区分大小写(eg.Int 为合法标识符)
p.s.
- 类名:每个单词的首字母都要大写;
方法名:第一个单词首字母小写,其余单词首字母大写(驼峰命名法) - 常量的名字要全部大写,单词之间用下划线隔开 eg. SQUARED_PI 表示 π²
3.注释
1.常规的//
和/* */
2.文档注释:/** */
——可用 javadoc 程序可以提取出来形成 html 格式文档
/**
这是一个文档注释
@param a
@return
*/
这里的@param
和@return
用来标记参数和返回值
提取文档注释案例
/**
@author: OYY
@version: 1.0
*/
public class Square
{
/**
方法calculateArea()用来计算正方形的面积
@param a 代表正方形的边长
@return 该方法返回正方形的面积
*/
public static double calculateArea(double a)
{
return a * a;
}
}
对于以上代码,我们可以在cmd中用javadoc
命令来提取文档注释:
javadoc -d doc -author -version Square.java
其中,doc为相对路径,在本例中指的是当前目录下的 doc 文件夹,也可将其替换为绝对路径
“项目”->“生成 javadoc”
4.运算符
运算符两边按最高精度的类型决定结果精度
eg. 9/4.0 = 2.25! > 算数运算符 > 关系运算符 > && > || > 赋值运算符
p.s. 条件运算符只高于赋值
位运算符
仅限于 int 和 long,且以二进制按每一位运算
01. &:按位与(1+0 = 0; 1+1 = 1)
02. |:按位或(1+0 = 1)
03. ^:按位异或(相同为 0,否则 1)
04. ~:按位非(0 变 1,1 变 0)
05. <<:左移(低位【右边的空位】补 0)
06. >>:右移(高位【左边的空位】补: 正数补 0,负数补 1)
//05.
int a = 7; a<<2;
/**
* 这里a = 00000000 00000000 00000000 00000111
* 左移后变成 00000000 00000000 00000000 00011100
* 所以 a<<2 = 28
*/
a = 28;
//06.
int b = -8; b>>2;
/**
* 这里 -8是8的补码(按位取反+1),即b = 11111111 11111111 11111111 11111000
* 右移后变成 11111111 11111111 11111111 11111110
* 所以 b>>2 = -2
*/
b = -2;
5.Continue 和 Break
Break 执行跳出循环;
Continue 执行继续下一次循环,也就是说在本次循环中 continue 后面的语句不会被执行。
6.数组
float num[] = {1,2,3,4}; //正确
// 错误
float numm[];
numm[] = {1,2,3,4};
// 正确
float numm[] = new float[4];
numm[0] = 1; numm[1] = 2; numm[2] = 3; numm[3] = 4;
Java 创建数组时,要么直接赋初值,要么用 new 开辟地址空间,不能像变量那样先声明后赋值。
1.Java 允许使用 已知的 int 变量(即常量)制定数组的长度:
int size = 30; double n[] = new double[size];
- Java 不允许在声明数组的中括号内指定数组元素个数
// 错误!!
int a[5] = {1,2,3,4,5};
- 数组.length 用来获取一维数组的长度以及二维数组的
行数
7.七七八八的 bug 总结
1. 不能在类中写语句,只能在方法中写语句
类底下只能定义一些东西,就像数据结构的结构体变量那样,不能直接写语句。(而且报错还很诡异..