基本语法
编写Java程序时,应注意以下几点:
大小写敏感: Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。
类名: 对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。
方法名: 所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
源文件名: 源文件名必须和类名相同。当保存文件的时候,应该使用类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。
主方法入口: 所有的Java 程序由public static void main(String []args)方法开始执行。
标识符
和C++中的概念一样,这里不再赘述。
Java命名规则
类 class: 采用完整的英文描述符,所有单词的第一个字母大写(一些专有的缩写词,比如:AWTException等则除外)。Class的名字建议使用名词或者名词短语。 例如:Customer, SavingsAccount,LayoutManager等
类变量 字段: 采用完整的英文描述,第一个字母小写,任何中间单词的首字母大写。 firstName, lastName
静态常量字段(static final) :全部采用大写字母,单词之间用下划线分隔。 MIN_BALANCE, DEFAULT_DATE
成员函数: 被访问字段名的前面加上前缀 get。
getFirstName(), getLastName()。
布尔型的获取成员函数所有的布尔型获取函数必须用单词 is 做前缀。
isPersistent(), isString() ;
设置成员函数 被访问字段名的前面加上前缀 set。
setFirstName(), setLastName(),setWarpSpeed()
关键字
abstract 抽象方法,抽象类的修饰符
assert 断言条件是否满足
boolean 布尔数据类型
break 跳出循环或者label代码段
byte 8-bit 有符号数据类型
case switch语句的一个条件
catch 和try搭配扑捉异常信息
char 16-bit Unicode字符数据类型
class 定义类
const 未使用
continue 不执行循环体剩余部分
default switch语句中的默认分支
do 循环语句,循环体至少会执行一次
double 64-bit双精度浮点数
else if条件不成立时执行的分支
enum 枚举类型
extends 表示一个类是另一个类的子类
final 表示一个值在初始化之后就不能再改变了表示方法不能被重写,
或者一个类不能有子类
finally 为了完成执行的代码而设计的,主要是为了程序的健壮性和完整性, 无论有没有异常发生都执行代码。
float 32-bit单精度浮点数
for for循环语句
goto 未使用
if 条件语句
implements 表示一个类实现了接口
import 导入类
instanceof 测试一个对象是否是某个类的实例
int 32位整型数
interface 接口,一种抽象的类型,仅有方法和常量的定义
long 64位整型数
native 表示方法用非java代码实现
new 分配新的类实例
package 一系列相关类组成一个包
private 表示私有字段,或者方法等,只能从类内部访问
protected 表示字段只能通过类或者其子类访问子类或者在同一个包内的其他类
public 表示共有属性或者方法
return 方法返回值
short 16位数字
static 表示在类级别定义,所有实例共享的
strictfp 浮点数比较使用严格的规则
super 表示基类
switch 选择语句
synchronized 表示同一时间只能由一个线程访问的代码块
this 表示调用当前实例或者调用另一个构造函数
throw 抛出异常
throws 定义方法可能抛出的异常
transient 修饰不要序列化的字段
try 表示代码块要做异常处理或者和finally配合表示是否抛出异常都执行 finally中的代码
void 标记方法不返回任何值
volatile 标记字段可能会被多个线程同时访问,而不做同步
while while循环
分隔符
分号“;”用来分隔不同的Java语句
空白分隔符,比如:空格符、Tab跳格键、换行符
点号“.”将Java包的名字与它的子包或类分隔,也可以将引用变量与变量或者方法分隔
注释
类似于C/C++,Java也支持单行以及多行注释。注释中的字符将被Java编译器忽略。
public class HelloWorld {
/* 这是第一个Java程序
*它将打印Hello World
* 这是一个多行注释的示例
*/
public static void main(String []args){
// 这是单行注释的示例
/* 这个也是单行注释的示例 */
System.out.println("Hello World");
}
}
基本数据类型
和C/C++一致,这里不再赘述
注意:
Java中的浮点型字面量默认是双精度型
float a=3.4F; ( ‘F’ 不能丢:float a=3.4; × )
正确用法:double a=3.4; √
字面量&&final变量
- 字面量和C/C++一致,不再赘述;
- 常量是在程序运行时,不会被修改的量。
在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似:
例如:final double PI = 3.1415927;
数据输出格式的控制
- 方法1:String.format(“格式串”,数值数据)
- 方法2:System.out.printf(“格式串”,数值数据)
实例:
int n1=100;
double d1=123.456;
System.out.println(String.format("%-5d,%.2f", n1,d1));
System.out.printf("%05d,%.2f\n", n1,d1);
控制台的输入输出
boolean类型:
boolean有两个文字值,即true和false(小写)。
注意: 数字值不能自动转换为boolean 。
例如:
int flag = 1;
if ( flag ) //Java Error! but C/C++ Correct
if (flag !=0) // OK,显示写出条件
boolean flag = true;
if( flag ) //OK,条件使用布尔值
char类型:
一个char代表一个16bit无符号的Unicode字符。
一般用法:char ch1=’a’, ch2=’\n’;
Unicode写法:
char ch=’\u0041’; → 字母“A”
字符检测方法:
已知 char ch='a';
Character.isLetter(ch) -- ch是否是字母
Character.isDigit(ch) -- ch是否是数字
Character.isLetterOrDigit(ch) -- ch是否是字母或数字
Character.isWhitespace(ch) -- ch是否是空格
Character.isLowerCase(ch) -- ch是否是小写字母
Character.isUpperCase(ch) -- ch是否是大写字母
变量初始化
任何变量都必须经初始化后才能被使用。
String类型
实例:
int a = 1, b=2;
String str = "hello";
System.out.println(str+a+b);
System.out.println(a+b+str);
以上输出结果:
hello12
3hello
String类常用方法
注意equals和==
字符类型转换
实例:
public class test {
public static void main(String args[ ]) {
String s1=new String("you are a student");
String s2=new String("how are you");
if (s1.equals(s2)) { // 判断s1与s2是否相同
System.out.println("s1与s2相同");
}
else {
System.out.println("s1与s2不相同");
}
String s3=new String("22030219851022024");
if (s1.startsWith(“220302”)) { // 判断s3的前缀是否是“220302”
System.out.println("吉林省的身份证");
}
String s4=new String("cat");
String s5=new String("dog");
if(s4.compareTo(s5)) { // 按字典序比较s4、s5
System.out.println("按字典序s4>=s5");
}
else {
System.out.println("按字典序s4<s5");
}
int position=0;
String path="c:\\java\\jsp\\A.java";
//获取path中最后出现目录分隔符号的位置
position=path.lastIndexOf(“\\”);
System.out.println("c:\\java\\jsp\\A.java中最后出现\\的位置:"+ position);
String fileName=path.substring(position+1, path.length()); // 获取path中“A.java”子字符串
System.out.println("c:\\java\\jsp\\A.java中含有的文件名:"+ fileName);
String s6=new String("100");
String s7=new String("123.678");
int n1=Integer.parseInt(s6); // 将s6转化成int型数据
double n2=Double.parseInt(s7); // 将s7转化成double型数据
double n=n1+n2;
System.out.println(String.format("%.2f", n))); // 输出n, 保留2位小数
String s8=new String("ABCDEF");
System.out.println(s8.toLowerCase()); // 将s8转化为小写输出
System.out.println(s8.charAt(s8.length()-1)); // 输出s8的最后一个字符
} //end main
} //end class
foreach