zoukankan      html  css  js  c++  java
  • 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程序的时候都会使用它。

    分隔符

      在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(表示错误)也不推荐使用标识符,虽然这三者不是关键字,但是这三者表示直接的值,影响程序的可读性。

     

     

  • 相关阅读:
    centos yum 安装nginx 后增加模块
    mysql 设置不了短串密码怎么办 You must reset your password using ALTER USER statement before executing this statement.
    Centos7 安装mysql后登录提示:Access denied for user 'root'@'localhost'
    mysql安装历程
    yum.rpm,repo源
    MySql-Server和MySql-Client的关系
    阿里云JKD镜像
    关于字符编码
    Dockerfile编写制作centos7.7+php5.6+nginx镜像
    PHP中常见日期、月份、时间戳列表(strtotime、date、mktime的用法)
  • 原文地址:https://www.cnblogs.com/joyfulcode/p/11688988.html
Copyright © 2011-2022 走看看