1、类的定义
Java是面向对象的强类型、静态类型语言。对象是由类产生,类使用关键字class定义。
最外层公共类名需要与java文件名相同,否者会显示错误。如新建一个Main.java(源程序扩展名必须为.java)文件在其中定义类:
public class Main { // 类名必须与Main.java的文件名相同
public static void main(String[] args) {
// write your code here
System.out.println("cs,Hello World!");
}
}
类命名风格:类名使用大驼峰命名形式。
类命通常时名词或名词短语,接口名除了用名词和名词短语以外,还可以使用形容词或形容词短语,如Cloneable,Callable等,表示实现该接口的类有某种功能或能力。对于测试类则以它要测试的类开头,以Test结尾,如HashMapTest
2、main函数(基本同 C/C++ 一样)
每个java程序都必须有且仅有一个main方法,程序从该方法处开始执行。
Java 程序的 main() 方法必须设置成公有的,否则,Java 解释器将不能运行该类
public static void main(String[] args) {
...
}
public: 公开的,可以由外部被呼叫。(相反的是 private 私有的,不能让外部呼叫)
static: 静态的,表示在程式刚开始执行前,就需要把這個载入到内存。所以主程式必須是static,不然内存中沒有你的程式码,將无法执行。
void: 這是回返回值的类型,void表示沒有返回值。
main: 程序进入点的名称,大小写必须相同,不能是其他名字。
String[] args: 程式進入点的 main 可以接受字串列表参数。String[] 表示字符串列表,args是為這些字符串列取的变量名,单容也可以写 main(String[] xxx)。
函数命名风格:方法命名采用小驼峰的形式,如isValid;
方法命名一般为动词或动词短语,与参数或参数名共同组成动宾短语,即动词 + 名词。一个好的函数名一般能通过名字直接获知该函数实现什么样的功能。
3、注释(同 C/C++ 一样)
单行注释使用//,块注释使用/**/,
4、括号和分号(基本和C/C++一致)
{}: 表示一个包含语句的块
(): 和方法一起使用;提高运算优先级;条件语句,循环语句中使用
[]: 表示一个数组
;: 表示一个语句的结束
5、区分大小写
大部分语言都区分大小写,不区分大小写的语言有 Assembly, Basic, Fortran, Pascal, 再勉强拉上SQL, CMD。
6、错误
-
syntax error 语法错误
创建代码时引起的错误 -
runtime error 运行时错误
引起程序非正常中断的错误,运行应用程序时,当环境检测到一个不可执行的操作时,就会出现该类型错误 -
logic error 逻辑错误
当程序没有按照预期的方式执行时就会发生逻辑错误
7、变量定义及赋值
变量声明定义方式与C/C++一样。
命名风格:采用小驼峰的形式
一個英文单词全小寫,多個单词組成首字小写,第二個英文字以后首字大写,如:myName, defaultValue
- 赋值
变量赋值操作同C/C++一样
注意:在Java和C/C++中,赋值语句也是一个表达式(即会产生结果),而python种仅是语句,所以在Java,如下操作都是正确的:
System.out.println(x = 1);
i = j = k = 1;
- 操作符
增强操作符: +=之类的操作符
自增(减)操作符: ++,–
以上两个操作符使用方式同C/C++
8、常量定义
使用final关键字声明常量,而C/C++中使用const。
命名风格:一个单词全英文大写,多个单词则用_分隔开并全大写
final int TEMP = 2;
9、数值数据类型
byte类型指数字范围在-128~127之间的数值,而于C/C++中char则是字符类型,
其它数值数据类型和C/C++中相同
-
数字类型转换同C/C++一样: int i = int(4.5),但如果数据大于能存放的容量大小,则会产生溢位错,如 byte b = byte(200) 结果为-56 = -(2^8-200)
-
java的char等同C/C++中的char字符类型,只能存储一个字符:char ch = ‘c’。
-
string用于声明字符类型:String s = “runoob”; 而在C/C++使用char *或 char array[n]定义字符串
-
整数转字符串
byte cc = 127;
System.out.println(Integer.toString(cc));
- 字符串转整数
String stringValue = "100";
int intValue = Integer.parseInt(stringValue);
数组
声明和定义几乎与C/C++的数组使用方式一样,除开如下的操作:
1、使用如下声明和定义方式, datatype[] 数组名 = new int[数组大小]:
int[] cc = new int[3]; // 创建一个大小为3的int数组,元素初始值都为0; int[] cc:可单独用于声明数组cc
cc[2] = 2;
System.out.println(cc[2]);
2、数组定义初始值
int[] cc = {1, 2, 3}; // []应放在数据类型之后,这是最优方式,虽然int cc[] = {1, 2, 3}也是正确的,但不是最优
System.out.println(cc[2]);
3、多维数组
int[][] aArray = new int[2][2] // 创建一个2行2列的二维数组
int[][] bArray = { {300,20} , {100,20} }; // 创建二维数组是初始化
int[][][] aArray = new int[3][3][3] // 创建一个三位数组
数组的方法:
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] cc = new int[3];
cc[0] = 2;
cc[1] = 1;
System.out.println(cc.length); // 获取数组长度
System.out.println(Arrays.toString(cc)); // 获取数组所有元素
Arrays.sort(cc); // 升序排序
System.out.println(Arrays.toString(cc));
}
}
boolean数据类型
用于声明一个具有值true或者false的变量:
boolean lightOn = true;
System.out.println(lightOn);
Java中true和false是保留值, 而python中True和Flase是保留值,C中非0表示真,0表示假
运算符(同C/C++一致)
- 逻辑操作符
!: 逻辑非
||: 逻辑或
&&: 逻辑与
^: 异或
除赋值操作符是右结合,其它二元操作符都是左结合