Java语法基础(1)

一、Java主类结构

       Java语言是面向对象的程序设计语言,Java程序的基本组成单元就是类,类体中又可包括属性与方法两部分。每一个Java本地应用程序都必须包含一个main()方法,main()方法为Java应用程序的入口,包含main()方法的类称之为主类。一个完整的主类结构通常由定义包语句、定义类语句、定义主方法语句、定义变量语句和导入API类库5部分组成,下面进行详细介绍。

1、定义包

开发应用程序时,通常将Java类放在指定的包中,每个包内通常放置同类的Java类,这样可以使应用程序的结构更加清晰,便于以后维护。在Java中,可以使用package关键字指定Java类所在包。例如,定义类包为structure的代码如下:

说明:Java包,在计算机硬盘上的表现形式为文件夹,例如,将First.java类放置在com包中,那么该Java文件将被放置在com文件夹中。如图所示。

2、定义类

一个Java应用程序是由若干个类组成的。通过class关键字来定义类,例如,要定义一个名称为FirstClass的公共类,可以使用以下代码:

说明:main()方法是程序入口方法。它有固定的格式,方法的参数也固定为一个字符串数组。

3、定义变量

通常将类的属性称之为类的全局变量(或成员变量)。将方法中的属性称之为局部变量。全局变量声明在类体当中,局部变量声明在方法体当中。全局变量和局部变量都有各自的应用范围。

4、导入API类库

Java类必须执行导入才能够被当前类使用。在Java语言中可以通过“import”关键字导入相关的类。例如,要导入java.util.Date类,可以使用以下代码:

注意:Java语言是严格区分大小写的。例如:关键字“class”不能写成“Class”,同理“FirstClass”与“Firstclass”是两个不同的Java类。

最后我们通过一个简单的程序来整体看看Java主类的结构。

例 :创建一个Java主类,用于在控制台输出“FirstClass,我的第一个Java类”。

(1)在Eclipse中创建一个Java项目,名称为TestProject。(Eclipse使用方法:

http://jingyan.baidu.com/article/48b558e373e1ea7f39c09a57.html,如果不习惯中 文版的就不要下载中文包)

(2)在“包资源管理器”中,展开刚建的TestProject节点,在src节点上,单机鼠标右键,在弹出快捷菜单中选择“新建”/“类菜单项。

(3)在弹出的“新建Java类”对话框的包“包”文本框中输入包名structure;在“名称”文本框中输入类名FirstClass;由于要创建主类,所以需要选中“public static void main(String[] args)”复选框。

(4)单击“完成”按钮,完成类的创建。这时,该类将被自动打开,并且该类中已经自动生成main方法。

(5)将FirstClass类的代码修改为以下代码,用于输出“FirstClass,我的第一个Java类”。

(6)运行该类。

Java类需要经过编译成“.class”后缀的二进制字节码文件,然后才能够运行,在Eclipse开发工具中,编译过程是自动的,我们可以直接运行主类程序。方法是:在“包资源管理器”视图中找到要运行的类文件(该类必须包含main()方法),在文件上单击鼠标右键,在弹出菜单中选择“运行方式”/“Java应用程序”命令。运行该类后,在控制台中将输出“FirstClass,我的第一个Java类”,如图所示。

二、代码注释与编码规范

 1、代码注释

        通过在程序代码中添加注释可提高程序的可读性。在Java源程序文件的任意位置都可添加注释语句。注释中的文字Java编译器并不进行编译,所有代码中的注释文字并不对程序产生任何影响。Java语言提供了3种添加注释的方法。分别为:单行注释、多行注释和文档注释。

(1).单行注释

“//”为单行注释标记,从符号“//”开始直到换行为止的所有内容均作为注释而被编译器忽略。

语法如下:

//注释内容

例如以下代码为声明的int型变量添加注释。

int age ;                                    //定义int型变量用于保存年龄信息

(2).多行注释

“/* */”为多行注释标记,符号“/*”与“*/”之间的所有内容均为注释内容。注释当中的内容可以换行。

语法如下:

/*

注释内容1

注释内容2

*/

注意:在多行注释当中可嵌套单行注释。例如:

/*

程序名称:Hello word //开发时间:2016-03-27

*/

但在多行注释中不可以嵌套多行注释,例如以下代码为非法代码。

            /*

            程序名称:Hello word

            /*开发时间: 2016-03-27

            作者:李四

            */

            */

(3).文档注释

“/** */”为文档注释标记。符号“/**”与“*/”之间的内容均为文档注释内容。当文档注释出现在任何声明(如类的声明、类的成员变量的声明、类的成员方法声明等)之前时,会被JavaDoc文档工具读取,作为Javadoc文档内容。文档注释的格式与多行注释的格式相同。对与初学者而言,文档注释并不是很重要,了解即可。

例如,为First类的主方法添加文档注释的关键代码如下:

           

 1  /**
 2    * 这是First类的主方法,它将输出成员变量s1 和局部变量s2的连接字符串。
 4    * @param args
 8    * 主方法的入口参数,用于接收命令行参数
10    */
13   public static void main(String[] args) { // 主方法
14 
15       String s1 = "局部变量1";// 局部变量
16 
17       String s2 = "局部变量2"; // 局部变量
18 
19       System.out.print(s1); // 输出变量s1
20 
21       System.out.println(s2); // 输出变量s2
22 
23   }

 

添加了文档注释的类成员,会在Eclipse的“JavaDoc”视图中显示相应的说明,另外,在编辑器中,把鼠标停留在该方法或引用该方法的位置上,也会出现悬浮提示信息。如图所示。

技巧:在Java源文件编辑器中,选择某个成员方法或成员变量,然后按<Alt>+<Shift>+<J>快捷键,Eclipse会自动添加JavaDoc文档注释结构,如果是方法的话,还会自动添加参数名称。

说明:一定要养成良好的编程风格,在软件编码规范中提到“可读性第一,效率第二。”所以程序员有必要在程序中添加适量的注释来提高程序的可读性和可维护性,程序中注释要占程序代码总量的20%~50%。

 

2、编码规范

编码规范对于程序开发人员很重要,遵循编码规范所编写的程序代码可读性高,有维护价值,如果你编写的程序代码别人看不懂、甚至没有人愿意看,那么你所编写的程序代码就一文不值,而且这样的程序,再过一段时间连开发者自己也会忘记程序的业务逻辑,无法有效地维护程序代码。

在学习开发的过程中一定要养成良好的编码规范,对于规整的代码格式会给程序的开发与日后的维护提供很大方便。

(1) 每条语句要单独占一行,一条命令要以分号结束。

注意:在程序代码中的分号必须为英文状态下,初学者经常会将“;”写成中文状态下的“;”,此时编译器会报出“illegal character”(非法字符)这样的错误信息。

(2)在声明变量时,尽量使每个变量的声明单独占一行,即使是相同的数据类型也要将其放置在单独的一行上。这样有助于添加注释。对于局部变量应在声明的同时对其进行初始化。

(3)在Java代码中,关键字与关键字间如果有多个空格,这些空格均被视作一个。例如:

而多于的空格没有任何意义,为了便于理解、阅读,应控制好空格的数量。

(4) 变量的命名要尽量使用有意义的名称,最好采用英文描述符。另外,变量的第一个单词小写,第二个以后的单词要求首字母大写。例如,productPrice、age、name、userName。

(5)类名和接口的命名不但要求使用有意义的单词而且所有单词的首字母都要大写,例如:ProductFactory、UserInfo。

(6) 常量的所有字母均为大写,多个单词使用“_”下划线分割。例如,PRODUCT_UNIT。

(7)适当的缩进代码,使代码对齐。但也不要添加过多的缩进,以至于代码被缩进出很远,这样同样能导致代码的可读性下降。

(8)合理的使用空白行,这样可以将逻辑相关的代码分隔开,以提高可读性。

(9)为了方便日后的维护,不要使用技术性很高、难懂、易混淆判断的语句。通常情况下,由于程序的开发与维护不能是同一个人,所以应尽量使用简单的技术完成程序需要的功能。

(10)对于关键的方法要多加注释,这样有助于阅读者很快地了解代码结构。

(11)遵循工程规定的统一代码格式,一般情况下,直接使用IDE自带的默认代码格式对代码进行格式化。,例如,在Eclipse中,可以使用〈Ctrl+Shift+F〉快捷键,自动格式化程序代码。

 

三、基本数据类型

1、整数型

整数类型用来存储整数数值,即没有小数部分的数值。整数类型可以是正数,也可以是负数。整型常量在Java程序中有3种表示形式,分别为十进制、八进制和十六进制。

(1)十进制

十进制是Java语言默认的数制,所以使用正常的表示形式,例如,120、0、-127、340。

注意:不能以0作为十进制数的开头(0除外)。

(2)八进制

八进制的表现形式以最高位的数字0做区分,如果最高位不是0,那么Java将把它解释为十进制,否则解释为八进制。例如,0123(转化成十进制数为83)、-0123(转化成十进制数为-83)。

说明:八进制的最大单个数字是7,7再加1就是10,它和十进制的8是相等的。八进制的字面量包括“0、1、2、3、4、5、6、7”。例如,0123(转化成十进制数为83)、-0123(转化成十进制数为-83)

注意:八进制必须以0开头。

(3)十六进制

十六进制的表现形式是在数的最高位添加“0x”标识,其中“x”字符不区分大小写。例如,0x25(转化成十进制数为37)、0Xb01e(转化成十进制数为45086)。

说明:十六进制主要用于二进制的简化表达方式,十六进制的1位数字可以转换成4位二进制数字。超出9的数字在十六进制中以字母表示,其字面量包括“0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F”,其中“A~F”分别代码十进制的“10~15”。例如:0x25(转化成十进制数为37)、0Xb01e(转化成十进制数为45086)

注意:十六进制必须以0X或0x开头。

整型变量根据它在内存中所占大小的不同,可分为byte、short、int和long四种类型。它们具有不同的取值范围,如表所示。

以int型变量为例,介绍整型变量的定义格式。

实例 :定义int型变量,实例代码如下:

int m;        //定义int型变量m

int x,y;    //定义int型变量x,y

int a = 450,b = -462;     //定义int型变量a,b并赋给初值

 在定义以上4种类型变量时,要注意变量的值不能超过变量所能接受的最大值与最小值,否则会出现错误。Java默认的整数类型是int,如果要标记整数是long类型,必须在数字末尾添加字母L或l(小写的L)。例如 long num = 2147483650L。

说明:在数字末尾添加L或l(小写的L)标识long类型整数,一般都发生在整数大于int最大取值范围时。因为Java默认的整数类型是int。

实例: 在项目中创建类Number,在主方法中创建不同数值型变量,并将这些变量相加,将和输出。

 1 public class Number {  //创建类
 2 
 3     public static void main(String[] args) { //主方法
 4 
 5          byte mybyte = 124;   //声明byte型变量并赋值
 6 
 7          short myshort = 32564;  //声明short型变量并赋值
 8 
 9          int myint = 45784612; //声明int型变量并赋值
10 
11          long mylong = 46789451; //声明long型变量并赋值
12 
13          long result = mybyte+myshort+myint+mylong; //获得各数相加后的结果
14 
15           System.out.println("结果为:"+result); //将以上变量相加的结果输出
16 
17      }
18 
19 }

程序行结果如图所示。

2、浮点类型

  浮点类型表示有小数部分的数字,Java语言中浮点类型分为单精度浮点类型(float)和双精度浮点类型(double)。它们具有不同的取值范围,如表所示。

Java语言默认使用double双精度类型的浮点数,就像int是默认的整数类型一样。如果将实数赋值给float类型的变量,则需要在实数末尾添加F或f作为后缀,否则被认为是double类型数值。

例: 定义浮点类型变量,代码如下:

double sum=3799.39;    // 双精度是默认浮点类型

double length=156.34D;  // 双精度可以添加D标识

float price=34.50F;     // 单精度需要添加F标识

double length1=156.34d;   // 双精度可以添加d标识

float price1=34.50f;    // 单精度需要添加f标识

System.out.println("sum="+sum);   //输出结果为:sum=3799.39

System.out.println("length="+length);  //输出结果为:length=156.34

System.out.println("price="+price);  //输出结果为:price=34.5

System.out.println("length1="+length1);   //输出结果为:length1=156.34

System.out.println("price1="+price1);  //输出结果为:price1=34.5

上面的代码,在控制台中输出的结果如图所示。

说明:在声明double类型的数据时,可以使用后缀“d”或“D”来明确表明这是一个double类型数据。但是加不加“D”或“d”没有硬性规定,可以加也可以不加,不过声明float型变量时如果不加“F”或“f”,编译器会认为是double类型而出错。

 

3、字符类型

(1).char型

字符类型(char)用于存储单个字符,占用16位(两个字节)的内存空间。在定义字符型变量时,要以单引号表示,例如 's' 表示一个字符。而 "s" 则表示一个字符串,虽然它只有一个字符,但由于使用双引号,所以它仍然表示字符串,而不是字符。

使用char关键字可定义字符变量。

例: 声明字符型变量,实例代码如下:

char x ='a';

由于字符a在unicode表中的排序位置是97。因此,允许将上面的语句写成:

char x = 97;

同C、C++语言一样,Java语言也可以把字符作为整数对待。由于unicode编码采用无符号编码,可以存储65536个字符(0x0000)~0xffff),所以Java中的字符几乎可以处理所有国家的语言文字。若想得到一个0~65536之间的数所代表的unicode表中的相应位置上的字符,也必须使用char型显示转化。

例: 在项目中创建类Gess,编写如下代码,实现将unicode表上某些位置上的字符以及一些字符在unicode表中的位置在控制台上输出。

 1 public class Gess {   //定义类Examlpe
 2 
 3    public static void main(String[] args) {   //主方法
 4 
 5        char word = 'd', word2 = '@';   //定义char型变量
 6 
 7        int p = 23045, p2 = 45213;  //定义int型变量
 8 
 9        System.out.println("d在unicode表中的顺序位置是:" + (int) word);
10 
11        System.out.println("@在unicode表中的顺序位置是:" + (int) word2);
12 
13        System.out.println("unicode表中的第23045位是:" + (char) p);
14 
15        System.out.println("unicode表中的第45213位是:" + (char) p2);
16 
17    }
18 
19 }

运行结果如图所示。

(2).转义字符

转义字符是一种特殊的字符变量。转义字符以反斜线“\”开头,后跟一个或多个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”。例如,printf函数的格式串中用到的“\n”就是一个转义字符,意思是“回车换行”。Java中转义字符如表所示。

将转义字符赋值给字符变量时,与字符常量值一样需要使用单引号将转义字符括起来。

例:分别为字符变量c1赋值为'\\'、字符变量c2赋值为'\''、字符变量c3赋值为'\115'、字符变量c4赋值为'\u0052',字符变量c5赋值为'\u2605',然后输出。

 1 char c1='\\';   //为变量c1赋值转义字符“\\”
 2 
 3 char c2='\'';   //为变量c2赋值转义字符“\'”
 4 
 5 char c3='\115';  //为变量c3赋值转义字符“\115”表示的字符
 6 
 7 char c4='\u0052';  //为变量c4赋值转义字符“\u0052”表示的字符
 8 
 9 char c5='\u2605'; //为变量c5赋值转义字符“\u2605”表示的字符
10 
11 System.out.println(c1);  //输出结果为:\
12 
13 System.out.println(c2);  //输出结果为:'
14 
15 System.out.println(c3);  //输出结果为:M
16 
17 System.out.println(c4);  //输出结果为:R
18 
19 System.out.println(c5); //输出结果为:★

说明:unicode代码\u0052表示字符R,而unicode代码\u2605表示字符★。

上面的代码,在控制台输出的结果如图所示。

例 在Java中,对字符变量进行如下的赋值也是合法的:

            

char char1='B'+1;             //将字符常量值'B'与十进制整数1相加的结果赋给字符变量char1

char char2='B'+'1'; //将两个字符常量值'B'与'1'相加的结果赋给字符变量char2

char char3=24+76;            //将两个十进制整数24与76相加的结果赋给字符变量char3

char char4='n'-32;            //该操作将得到大写的字母N,'N'+32将得到小写的字母n

System.out.println(char1);   //输出结果为:C

System.out.println(char2);   //输出结果为:s

System.out.println(char3);   //输出结果为:d

System.out.println(char4);   //输出结果为:N

  

上面的代码,在控制台输出的结果如图所示。

例 在输出语句中使用转义字符,实例代码如下:

 1 public class Temp {
 2 
 3       public static void main(String[] args) {
 4 
 5             System.out.println("\102");      // 八进制编码的字符
 6 
 7             System.out.println("\u0042");      // 十六进制编码的字符
 8 
 9             System.out.println("苹果\t橘子\t香蕉");// 使用制表符分割
10 
11             System.out.println("\\字符是反斜杠");      // 输出反斜杠
12 
13             System.out.println("\n换行字符");      // 输出回车
14 
15       }
16 
17 }

实例运行结果如图所示。

 

4、布尔类型

        布尔类型又称逻辑类型,只有两个值true和false,分别代表布尔逻辑中的“真”和“假”,布尔值不能与整数类型进行转换。布尔类型通常被用在流程控制中作为判断条件。

例 定义布尔型变量,可通过关键字boolean来定义。定义方法如下:

boolean b;   //定义布尔型变量b

boolean b1,b2; //定义布尔型变量b1,b2

注意:由于布尔型数据只存在true和false数值,所以在为boolean型变量赋值时,除这两个值外的任何数值都是非法的。

例 分别为布尔型变量married赋值为false,alive赋值为true,然后输出。

boolean married=false;

boolean alive=true;

System.out.println("已婚:"+married);      //输出结果为:false

System.out.println("生命:"+alive);      //输出结果为:true

  

在控制台中的运行结果如图所示 。

posted @ 2019-05-13 15:33  季节风逝  阅读(947)  评论(0编辑  收藏  举报