码迷,mamicode.com
首页 > 编程语言 > 详细

Java基本语法

时间:2019-10-16 23:14:53      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:不同的   个数   square   apt   ack   占用   class   line   直接   

Java基本语法

注释

  在Java程序的编写过程中我们需要对一些程序进行注释,或者对一些代码进行解释,这样除了方便自己阅读以外,还能让别人更容易理解自己写的程序,所以我们需要用到注释。可以将注释理解为程序的一部分,但是Java编译器是不会对注释进行编译的。注释的作用就相当于将注释掉的代码或者解释隐藏了起来,Java编译器是看不到的。总而言之,注释的使用就是方便自己或者他人能更好的阅读。

  Java语言的注释主要有以下三种:

    单行注释

    多行注释

    文档注释

 

单行注释:

  单行注释的起源也来自C++,是以一个“//”标记在某一行的开始,表示这一行代码或者解释的内容都是注释。这种类型的注释在实际开发中经常会用到,因为它书写时更方便。没有必要在键盘上先寻找“/”再寻找“*”,只需要连续按两次“/”就可以了,而且不必在注释的结尾再加一个结束标记。

  以下便是单行注释的例子:

1 public class NotesDemo{
2     //我是单行注释
3 }

 

多行注释:

  多行注释顾名思义就是能对多行代码或者解释的内容注释。可能有人会想到,用单行注释不是也可以实现多行吗。没错,单行注释也可以实现多行注释,但是不是很方便,用单行注释来注释多行内容会很麻烦,你需要对你要注释的代码或解释的每行前面都要加上“//”,这实在是一件麻烦事,所以就有了多行注释,理由就是更加方便与简单。多行注释与单行注释的格式不同,多行注释要先在你需要注释的代码或解释的开始加上“/*”,在整体内容的末尾加上“*/”(注意:末尾的“*”与“/”的顺序与开始的顺序是相反的,在使用的时候千万不能写错了)。

  以下便是多行注释的例子:

 

1 public class NotesDemo{
2     /*你好啊
3     我是一个
4     多行注释*/
5 }

 

 

文档注释:

  Java文档注释是一种功能强大的注释形式,如果在你所编写的程序中规范的添加文档注释,那么你就可以根据这些文档注释来生成一份系统正规的API文档。Java文档注释的格式与多行注释比较相似,末尾都是“*/”,但是开始是“/**”而不是“/*”,注意区分多行注释与文档注释的区别。

  Java使用javadoc工具来提取文档注释,生成十分专业的程序文档(API)。javadoc输出的是一个HTML文件,可以使用自己的Web浏览器来查看该文档。由于有了javadoc,所以我们能用标准的方法快速创建一份API。而且由于它非常方便,所以我们能轻松获得所有Java类库的文档。

  API就是一份文档,与咱们平时使用的Word,WPS的文档一样。但是API是在Web浏览器打开浏览的。API的使用能更加容易让自己或者他人了解代码的结构与原理,而且在API中还能查看自己需要的类或接口与方法。

  以下便是文档注释的例子:

1 public class NotesDemo{
2     /**
3     *@author开心小将
4     *
5     */
6 }

 

  javadoc工具识别以下标签:

 
标签 描述 示列
@author 标识一个类的作者 @author description
@deprecated 指名一个过期的类或成员 @deprecated description
{@docRoot 指明当前文档根目录的路径 Directory Path
@exception 标志一个类抛出的异常 @exception exception-name explanation
{@inheritDoc} 从直接父类继承的注释 Inherits a comment from the immediate surperclass.
{@link} 插入一个到另一个主题的链接 {@link name text}
{@linkplain} 插入一个到另一个主题的链接,但是该链接显示纯文本字体 Inserts an in-line link to another topic.
@param 说明一个方法的参数 @param parameter-name explanation
@return 说明返回值类型 @return explanation
@see 指定一个到另一个主题的链接 @see anchor
@serial 说明一个序列化属性 @serial description
@serialData 说明通过writeObject( ) 和 writeExternal( )方法写的数据 @serialData description
@serialField 说明一个ObjectStreamField组件 @serialField name type description
@since 标记当引入一个特定的变化时 @since release
@throws 和 @exception标签一样 The @throws tag has the same meaning as the @exception tag
{@value} 显示常量的值,该常量必须是static属性 Displays the value of a constant, which must be a static field
@version 指定类的版本 @version info

 

  说明注释:

  在开始的“/**”之后,第一行或几行是关于类、变量和方法的主要描述。

  之后,你可以包含一个或者多个何种各样的“@”标签。每个“@”标签必须在一个新行的开始或者在一行的开始紧跟“*”。

  多个相同类型的标签应该放在一组。例如:如果你有三个“@see”标签,可以将它们一个接一个的放在一起。

 

  示列:

  下面是一个使用说明注释的简单实例。注意每一个注释都在它描述的项目的前面。

 

 1 import java.io.*;
 2  
 3 /**
 4 * 这个类演示了文档注释
 5 * @author 开心小将
 6 * @version 1.0
 7 */
 8 public class SquareNum {
 9    /**
10    * This method returns the square of num.
11    * This is a multiline description. You can use
12    * as many lines as you like.
13    * @param num The value to be squared.
14    * @return num squared.
15    */
16    public double square(double num) {
17       return num * num;
18    }
19    /**
20    * This method inputs a number from the user.
21    * @return The value input as a double.
22    * @exception IOException On input error.
23    * @see IOException
24    */
25    public double getNumber() throws IOException {
26       InputStreamReader isr = new InputStreamReader(System.in);
27       BufferedReader inData = new BufferedReader(isr);
28       String str;
29       str = inData.readLine();
30       return (new Double(str)).doubleValue();
31    }
32    /**
33    * This method demonstrates square().
34    * @param args Unused.
35    * @return Nothing.
36    * @exception IOException On input error.
37    * @see IOException
38    */
39    public static void main(String args[]) throws IOException
40    {
41       SquareNum ob = new SquareNum();
42       double val;
43       System.out.println("Enter value to be squared: ");
44       val = ob.getNumber();
45       val = ob.square(val);
46       System.out.println("Squared value is " + val);
47    }
48 }

 

 

  在经过javadoc处理之后,SquareNum类的注释将在SquareNum.html中找到。

  一般的我们使用Eclipse软件来帮助我们生成API,Eclipse软件是集成IDE开发环境的一个软件,一般我们在写Java程序的时候都会使用它,Eclipse软件小编以后会提到滴。

 

分隔符

  在Java中,有一类特殊的符号称为分隔符,包括空白分隔符和普通分隔符。

  空白分隔符:

  空白分隔符包括:空格、回车换行和制表符Tab键。空白分隔符的主要作用是分隔标识符,帮助Java编译器理解源程序,也更方便自己或他人阅读。(例如:int a;)如果标识符int和a之间没有空格,就变成了inta,编译器会认为这是用户自定义的标识符,阅读起来也很难理解。但实际上该语句的作用是定义一个int型的变量叫a。

  普通分隔符:

  普通分隔符具有明确的语法含义,有以下七种:

    (1){}大括弧(花括号):用来定义块、类、方法以及局部范围,也用来包括自己初始化的数组的值。大括号必须成对出现,否则编译器会报错。

    (2)[]中括弧(方括号):用来进行数组的声明,也用来撤销对数组的引用,一般的只要程序中出现中括弧就表示用到了数组。

    (3)()小括弧(原括弧):用来在定义和调用方法时,用来容纳参数列表的。在控制语句或强制类型转换的表达式中用来表示执行或计算优先权。

    (4);分号:用来表示一条语句的结束。语句必须以分号来结束该句话。即使一条语句跨行或者多行,如果不使用分号来结束则它仍是未结束的。一般在类声明,方法声明,循环语句,判断语句等的语句中不使用分号结尾(因为以上该语句都用到了大括弧,这是Java语法规定),在for循环语句中,用来将小括弧里的语句连接起来。

    (5),逗号:用在声明变量中用于分隔变量列表中的各个变量。

    (6):冒号:用来说明语句标号,switch-case-default语句中经常用到它,增强for循环中我们也用到它。

    (7).圆点:用于类或对象和属性或者方法之间的分隔(也可以说是调用)。(例如:Person.eat();)这个语句表示一个Person类调用了一个eat方法。

 

  以下便是普通分隔符与空白分隔符的例子:

 

 1 package test;
 2 
 3 import java.util.Scanner;
 4 
 5 public class SeparatorDemo{        //这是大括弧分隔符的使用
 6     public static void separator(){     //这是小括弧分隔符和大括弧分隔符的使用
 7         int a = 1;         //这是分号分隔符的使用
 8         double money = 100.0;      //这是分号分隔符的使用
 9         int []array = new int[5];    //这是中括弧分隔符和分号分隔符的使用
10         System.out.println(a+","+money);     //这是小括弧分隔符、逗号分隔符和分号分隔符的使用    
11 }
12     public static void main(String[] args) {    //这是大括弧分隔符、中括弧分隔符和小括弧分隔符的使用
13         switch(new Scanner(System.in).next()) {    //这是圆点分隔符、小括弧分隔符和大括弧分隔符的使用
14         case "1":        //这是冒号分隔符的使用
15             SeparatorDemo.separator();        //这是圆点分隔符和分号分隔符的使用
16         default :        //这是冒号分隔符的使用
17             System.out.println("error");    //这是小括弧分隔符和分号分隔符的使用    
18         }
19         
20     }
21         
22 }

 

 

 

标识符

  在Java中,标识符的作用是赋予变量值、类或方法的名称的。程序通过这些名称来访问或修改某个数据的数值。

  标识符命名规范:可以是数字、字母、下划线(_)或美元符号($)组成的,但是不能以数字开头。(注意:这里的字母并不仅仅局限于26个英文字母,而是包括任何一门语言中表示字母的任何Unicode字符(一种字符表),标识符的长度没有做明确规定)。

  Java没有采用通常计算机系统采用的ASCII代码集,而是采用了更为国际化的Unicode字符集。在这种字符集中,每个字符占用两个字节(也就是16位)。这样,整个字符集中共包含65535个字符。后面21000个字符用来表示汉字、日文片假名、平假名和朝鲜文等。

  但是Unicode字符只用在Java平台内部,当涉及到打印输出、屏幕显示、键盘输入等外部操作时,仍是由计算机的操作系统来决定字符的表示方法(也就是ASCII码)。例如:当输出打印英文字母时,输出的结果是用8位二进制表示的ASCII码所对应的值,而不是Unicode字符集对应的值。

  在定义和使用标识符时需要注意:Java语言是大小写敏感的(例如:标识符‘a‘和‘A‘是完全两个不同的标识符)。

  在定义标识符时,需要注意以下问题:

    (1)Java标识符由:字母、数字、下划线或美元符号组成,其他符号一概不允许(例如:@符号、#符号)。

    (2)Java标识符必须以:字母、下划线或美元标识符开头,不能以数字开头。

    (3)Java标识符区分大小写(例如:‘a‘、‘A‘、‘b‘、‘B‘、是四个不同的标识符)。

    (4)Java标识符不能含空格、不能是Java关键字。

    (5)Java语言强调“见名知意”原则,标识符应具有一定的含义,以增加程序的可读性。

    (注意:在编写Java程序时标识符是可以用中文汉字的,但是不建议使用汉字。因为在Java程序中使用中文很容易引起很多编码方面的问题。)

 

  以下便是Java标识符的例子:

 

 1 package test;
 2 /**
 3  * @author 开心小将
 4  * 此案例主要介绍如何使用标识符
 5  *
 6  */
 7 public class IdentifierDemo{
 8    
 9     public static void main(String[] args) {
10         int a = 10;        //声明一个标识符为a的int型变量
11         int b = 16;        //声明一个标识符为b的int型变量
12         int c = 2019;    //声明一个标识符为c的int型变量
13         //注意:以下标识符不合法:
14         //int @a;      我以@开头,我不合法
15         //int 1a;        我以数字开头,我不合法
16         //int public;    我是Java关键字,我不合法
17         //int a b;        我中间含有空格,我不合法
18         
19         //以下标识符是符合Java规定的
20         int $a = 10;        //我以$开头是合法的
21         int A = 16;            //我是大写的A,和a是两个标识符
22         int variable = 2019;//我是自定义的标识符,不是Java关键字
23         
24         //注意:以下标识符虽然合法,但是不建议使用
25         //原因:这样写标识符语义不明确,降低了程序的可读性,也违反了Java标识符的命名规则
26         int aaaaaaa = 10;
27         int abcdef = 16;
28         int a1b2c3 = 2019;
29     }
30 }

 

 

 

关键字

  关键字(又叫做保留字)其实是电脑语言里事先定义的,意思是:有特别意义的标识符,还有特别意义的变量。

  Java的关键字对Java的编辑器有特殊的意义,他们被用来表示:数据类型、或者程序结构等等。关键字不能被用作我们自己定义的:包名、类名、方法名、变量名和参数。

  Java语言规定关键字不能被用作标识符。目前大约有50个Java关键字,其中,“const”和“goto”这两个关键字在Java语言中并没有具体的含义。而Java将它俩列为关键字是因为他俩是其他某些计算机语言的关键字(例如:C语言、C++语言)。

  Java关键字都是小写格式的,比如:TRUE、FALSE等大写的都不是Java关键字,因为Java是大小写敏感的。

  Java关键字的大致含义如下:

关键字 含义
abstract 表明类或者成员方法具有抽象属性
assert 用来进行程序调试
boolean 基本数据类型之一,布尔类型
break 提前跳出一个块
byte 基本数据类型之一,字节类型
case 用在switch语句之中,表示其中的一个分支
catch 用在异常处理中,用来捕捉异常
char 基本数据类型之一,字符类型
class
const 保留关键字,没有具体含义
continue 回到一个块的开始处(一般用在循环中,跳出本次循环,开始下一次循环)
default 默认,例如,用在switch语句中,表明一个默认的分支
do 用在do-while循环结构中
double 基本数据类型之一,双精度浮点数类型
else 用在条件语句中,表明当条件不成立时的分支
enum 枚举
extends 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,一般用来定义常量
finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float 基本数据类型之一,单精度浮点数类型
for 一种循环结构的引导词
goto 保留关键字,没有具体含义
if 条件语句的引导词
implements 表明一个类实现了给定的接口
import 表明要访问指定的类或包
instanceof 用来测试一个对象是否是指定类型的实例对象
int 基本数据类型之一,整数类型
interface 接口
long 基本数据类型之一,长整数类型
native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new 用来创建新实例对象
package
private 一种访问控制方式:私用模式
protected 一种访问控制方式:保护模式
public 一种访问控制方式:共用模式
return 从成员方法中返回数据
short 基本数据类型之一,短整数类型
static 表明具有静态属性
strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
super 表明当前对象的父类型的引用或者父类型的构造方法
switch 分支语句结构的引导词
synchronized 表明一段代码需要同步执行
this 指向当前实例对象的引用
throw 抛出一个异常
throws 声明在当前定义的成员方法中所有需要抛出的异常
transient 声明不用序列化的成员域
try 尝试一个可能抛出异常的程序块
void 声明当前成员方法没有返回值
volatile 表明两个或者多个变量必须同步地发生变化
while 用在循环结构中
null 一个空引用(注意:null从技术上讲是一个直接量,而不是关键字,但是不推荐用作标识符)

除了null以外,true(表示正确)和false(表示错误)也不推荐使用标识符,虽然这三者不是关键字,但是这三者表示直接的值,影响程序的可读性。

 

 

 

Java基本语法

标签:不同的   个数   square   apt   ack   占用   class   line   直接   

原文地址:https://www.cnblogs.com/joyfulcode/p/11688988.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!