Java学习(六)

喜夏-厌秋 提交于 2020-01-26 02:57:22

Java学习(六)

前言

之前,我们已经安装过eclipse,下面,我们就要开始使用eclipse来开始我们的java编程了。

1.Java的标识符和关键字的学习

1.标识符

Java 中标识符是为方法、变量或其他用户定义项所定义的名称。标识符可以有一个或多个字符。在 Java 语言中,标识符的构成规则如下。

  • 标识符由数字(09)和字母(AZ 和 a~z)、美元符号($)、下划线(_)以及 Unicode 字符集中符号大于 0xC0 的所有符号组合构成(各符号之间没有空格)。
  • 标识符的第一个符号为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线

另外,Java 严格区分大小写 。比如:myjava 和Myjava是两个标识符。

提示:标识符命名时,切记不能以数字开头,也不能使用任何 Java 关键字作为标识符,而且不能赋予标识符任何标准的方法名。

标识符分为两类,分别为关键字和用户自定义标识符。

  1. 关键字是有特殊含义的标识符,如 true、false 表示逻辑的真假。
  2. 用户自定义标识符是由用户按标识符构成规则生成的非保留字的标识符,如 abc 就是一个标识符。

提示:使用标识符时一定要注意,或者使用关键字,或者使用自定义的非关键字标识符。此外,标识符可以包含关键字,但不能与关键字重名。

例如以下合法与不合法标识符。

  • 合法标识符:date、KaTeX parse error: Expected group after '_' at position 13: 2011、_date、D_̲date 等。
  • 不合法的标识符:123.com、2com、for、if、fruit 等。

标识符用来命名常量、变量、类和类的对象等。因此,一个良好的编程习惯要求命名标识符时,应赋予它一个有意义或有用途的名字。

2.关键字

关键字(或者保留字)是对编译器有特殊意义的固定单词,不能在程序中做其他目的使用。关键字具有专门的意义和用途,和自定义的标识符不同,不能当作一般的标识符来使用。 public 也是关键字,它用来表示公共类。另外,static 和 void 也是关键字,它们的使用将在本教程后面的章节中详细介绍。

Java 的关键字对 Java 编译器有特殊的意义,它们用来表示一种数据类型,或者表示程序的结构等。保留字是为 Java 预留的关键字,它们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。

Java 语言目前定义了 51 个关键字,这些关键字不能作为变量名、类名和方法名来使用。以下对这些关键字进行了分类。

  1. 数据类型:boolean、int、long、short、byte、float、double、char、class、interface。
  2. 流程控制:if、else、do、while、for、switch、case、default、break、continue、return、try、catch、finally。
  3. 修饰符:public、protected、private、final、void、static、strict、abstract、transient、synchronized、volatile、native。
  4. 动作:package、import、throw、throws、extends、implements、this、supper、instanceof、new。
  5. 保留字:true、false、null、goto、const。

提示:由于 Java 区分大小写,因此 public 是关键字,而 Public 则不是关键字。但是为了程序的清晰及可读性,要尽量避免使用关键字的其他形式来命名。

2.Java注释:单行、多行和文档注释

1.单行注释

以双斜杠“//”标识,只能注释一行内容,用在注释信息内容少的地方。打开 Eclipse,在 Java 代码中使用单行注释 。

2.多行注释

包含在“ /* ”和“ */ ”之间,能注释很多行的内容。为了可读性比较好,一般首行和尾行不写注释信息(这样也比较美观好看) 。

注意:多行注释可以嵌套单行注释,但是不能嵌套多行注释和文档注释。

3.文档注释

包含在“/**”和“*/”之间,也能注释多行内容,一般用在类、方法和变量上面,用来描述其作用。注释后,鼠标放在类和变量上面会自动显示出我们注释的内容

注意:文档注释能嵌套单行注释,不能嵌套多行注释和文档注释,一般首行和尾行也不写注释信息。

文档注释可以通过 Javadoc 命令把文档注释中的内容生成文档,并输出到 HTML 文件中,方便记录程序信息。还可以包含一个或多个 @ 标签,每个 @ 标签都在新的一行开始。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
在 Java 中,一行注释以双斜杠“//”标识;多行注释包含在“/* ”和“ */ ”之间;文档注释包含在“/** ”和“  */ ”之间。当编译器执行到“//”时,就会忽略该行“//”之后的所有文本;当执行到“  /*   ”时,会扫描下一个“*/”并忽略“/*”和“*/”之间的任何文本;当执行到“/**”时,也会扫描下一个“*/”并忽略“ /** ”和“ */ ”之间的任何文本内容。

3.Java常量:Java常量的定义和分类

1.常量值

1.1整形常量值

Java 的整型常量值主要有如下 3 种形式。

  • 十进制数形式:如 54、-67、0。
  • 八进制数形式:Java 中的八进制常数的表示以 0 开头,如 0125 表示十进制数 85,-013 表示十进制数 -11。
  • 十六进制数形式:Java 中的十六进制常数的表示以 0x 或 0X 开头,如 0x100 表示十进制数 256,-0x16 表示十进制数 -22。

整型(int)常量默认在内存中占 32 位,是具有整数类型的值,当运算过程中所需值超过 32 位长度时,可以把它表示为长整型(long)数值。长整型类型则要在数字后面加 L 或 1, 如 697L,表示一个长整型数,它在内存中占 64 位。

1.2实型常量值

Java 的实型常量值主要有如下两种形式。

  • 十进制数形式:由数字和小数点组成,且必须有小数点,如 12.34、-98.0。
  • 科学记数法形式:如 1.75e5 或 32&E3,其中 e 或 E 之前必须有数字,且 e 或 E 之后的数字必须为整数。

Java 实型常量默认在内存中占 64 位,是具有双精度型(double)的值。如果考虑到需要节省运行时的系统资源,而运算时的数据值取值范围并不大且运算精度要求不太高的情况,可以把它表示为单精度型(float)的数值。

单精度型数值一般要在该常数后面加 F 或 f,如 69.7f,表示一个 float 型实数,它在内存中占 32 位(取决于系统的版本高低)。

1.3布尔型常量

Java 的布尔型常量只有两个值,即 false(假)和 true(真)。

1.4字符型和字符串常量值

Java 的字符型常量值是用单引号引起来的一个字符,如 ‘e’、E’。需要注意的是,Java 字符串常量值中的单引号和双引号不可混用。双引号用来表示字符串,像 “11”、“d” 等都是表示单个字符的字符串。

除了以上所述形式的字符常量值之外,Java 还允许使用一种特殊形式的字符常量值来表示一些难以用一般字符表示的字符,这种特殊形式的字符是以开头的字符序列,称为转义字符。

注意:这里表示字符和字符串的单引号和双引号都必须是英语输入环境下输入的符号。

转义字符 说明
\ddd 1~3 位八进制数所表示的字符
\uxxxx 1~4 位十六进制数所表示的字符
\ ’ 单引号字符
\ " 双引号字符
\ \ 双斜杠字符
\r 回车
\n 换行
\b 退格
\t 横向跳格

2.定义变量

常量不同于常量值,它可以在程序中用符号来代替常量值使用,因此在使用前必须先定义。

常量一旦初始化就不可以被修改。它的声明格式为:

Java 语言使用 final 关键字来定义一个常量,其语法如下所示:

final dataType variableName = value

其中,final 是定义常量的关键字,dataType 指明常量的数据类型,variableName 是变量的名称,value 是初始值。

final 关键字表示最终的,它可以修改很多元素,修饰变量就变成了常量。例如,以下语句使用 final 关键字声明常量。

public class HelloWorld {
    // 静态常量
    public static final double PI = 3.14;
    // 声明成员常量
    final int y = 10;
    public static void main(String[] args) {
        // 声明局部常量
        final double x = 3.3;
    }
}

常量有三种类型:静态常量、成员常量和局部常量。

代码第 3 行的是声明静态常量,使用在 final 之前 public static 修饰。public static 修饰的常量作用域是全局的,不需要创建对象就可以访问它,在类外部访问形式为 HelloWorld. PI。这种常量在编程中使用很多。

代码第 5 行声明成员常量,作用域类似于成员变量,但不能修改。代码第 9 行声明局部常量,作用域类似于局部变量,但不能修改。

在定义常量时,需要注意如下内容:

  • 在定义常量时就需要对该常量进行初始化。
  • final 关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。
  • 为了与变量区别,常量取名一般都用大写字符。

3.声明变量与赋值

3.1变量声明

对开发人员来说,变量是用来描述一条信息的别名,可以在程序代码中使用一个或多个变量。变量中可以存储各种类型的信息,如登录信息、版本名称、文件的大小、某个英文单词以及飞机票价格等。

在 java 中用户可以通过指定数据类型和标识符来声明变量,其基本语法如下所示:

DataType identifier;
DataType identifier=value;

上述语法代码中涉及 3 个内容:DataType、 identifier 和 value,其具体说明如下:

  • DataType:变量类型,如 int、string、 char 和 double 等。
  • identifier:标识符,也叫变量名称。
  • value:声明变量时的值。

变量标识符的命名规范如下:

  • 首字符必须是字母、下划线(―)、美元符号($)或者人民币符号(¥)。
  • 标识符由数字(09)、大写字母(AZ)、小写字母(a~z)、下划线(―)、美元符号($)、人民币符号(¥)以及所有在十六进制 0xc0 前的 ASCII 码组成。
  • 不能把关键字、保留字作为标识符。
  • 标识符的长度没有限制。
  • 标识符区分大小写。

如下代码分别声明了 String、boolean 和 int 类型的变量。

String employee;    // String 类型的变量
boolean isSave;    // boolean 类型的变量
int create_at;    // int 类型的变量

3.2变量赋值

初始化变量是指为变量指定一个明确的初始值。初始化变量有两种方式:一种是声明时直接赋值,一种是先声明、后赋值。如下代码分别使用两种方式对变量进行了初始化。

char usersex='女';    // 直接赋值
或者
String username;    // 先声明
username ="琪琪";    // 后赋值

另外,多个同类型的变量可以同时定义或者初始化,但是多个变量中间要使用逗号分隔,声明结束时用分号分隔。

String username,address,phone,tel;    // 声明多个变量
int num1=12,num2=23,result=35;    // 声明并初始化多个变量

4.变量的作用域

1.成员变量

Java 的成员变量有两种,分别是全局变量和静态变量(类变量)。定义在方法体和语句块之外,不属于任何一个方法,作用域是整个类。

名称 修饰 访问 生命周期
全局变量(实例变量) 无static修饰 对象名.变量名 只要对象被当做引用,实例变量就将存在
静态变量(类变量) 用static修饰 类名.变量名或对象名.变量名 其生命周期取决于类的生命周期。类被垃圾回收机制彻底回收时才会被销毁

假设在一个类中声明了 4 个变量,下面编写一个测试类输出引起变量的值改变的示例代码。

变量声明代码如下所示

public class DataClass {
    String name; // 成员变量、实例变量
    int age; // 成员变量、实例变量
    static final String website = "你好帅"; // 成员变量、静态变量(类变量)
    static String URL = "http://www.baidu.com"; // 成员变量、静态变量(类变量)
}

测试类代码如下所示:

public class Test {
    public static void main(String[] args) {
        // 创建类的对象
        DataClass dc = new DataClass();
        // 对象名.变量名调用实例变量(全局变量)
        System.out.println(dc.name);
        System.out.println(dc.age);
        // 对象名.变量名调用静态变量(类变量)
        System.out.println(dc.website);
        System.out.println(dc.URL);
        // 类名.变量名调用静态变量(类变量)
        System.out.println(DataClass.website);
        System.out.println(DataClass.URL);
    }
}

测试结果

在这里插入图片描述

在本例的第一段代码中定义了 4 个成员变量,由输出结果可以看出,name 和 age 显示系统默认初始化的值,website 和 URL 显示初始化的值。且用 static final 修饰的变量必须赋予初始值。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!