Java第三章

Java第三章

3.1Java主类结构

        Java 语言是面向对象的程序设计语言,Java 程序的基本组成单元是类,类体中又包括属性与方法两部分每一个应用程序都必须包含一个 main()方法,含有 main()方法的类称为主类。

        【例 3.1】创建主类并调用其主方法(实例位置:资源包\TMis3M)

在在 Eclipse 下依次创建项目 item、包 Number 和类 Frist。在类体中输入以下代码,实现在控制台上输出"你好,Java"。

 

注意:

        代码中的所有标点符号都是英文字符。不要在中文输入法状醒号,否则会导致编译错误。
        文件名必须和类名 Frist 相同,即 Fristjava。还要注意大小写,Java 是区分大小写的。

        1.包声明
        一个 Java 应用程序是由若干个类组成的。在例 3.1 中就是一个类名为 Frist 的类,语句 packageNumber 为声明该类所在的包,package 为包的关键字。
        2.声明成员变量和局部变量
        通常将类的属性称为类的全局变量(成员变量),将方法中的属性称为局部变量。全局变量声明在类体中,局部变量声明在方法体中。全局变量和局部变量都有各自的应用范围。在例 3.1 中,s1 是成员变量,s2 是局部变量。
        3.编写主方法
main()方法是类体中的主方法。该方法从“{”开始,至“}”结束。public、static 和 void 分别是main()方法的权限修饰符、静态修饰符和返回值修饰符,Java 程序中的 main)方法必须声明为 public static void。String[]args 是一个字符串类型的数组,它是 main)方法的参数main(方法是程序开始执行的位置。
        4.导入 API 类库
        在 Java 语言中可以通过 import 关键字导入相关的类。在 JDK 的 API 中(应用程序接口)提供了130 多个包,如java.awt、java.io 等。可以通过 JDK 的 API文档来查看这些包中的类,把握类的继承结构、类的应用、成员变量表、构造方法表等,并对每个变量的使用目的进行了解,API 文档是程序开发人员不可或缺的工具。

 3.2数据基本类型

基本数据类型范围四种:整数类型,浮点类型,字符类型、布尔类型。

 

3.2.1 整数类型

        整数类型简称整型,用来存储整数数值,即没有小数部分的数值。可以是正数,也可以是负数。整数数据根据它所占内存大小的不同,分为byte、short、int和long这四种类型。它们具有不同的取值范围,取值范围如下图所示:

整型数据类型
数据类型内存空间(8位等于1个字节)取值范围
byte8位-128(-2^7)~127(2^7-1)
short16位-2^15~2^15-1
int32位-2^31~2^31-1
long64位-2^63~2^63-1

用四种类型编写一个程序,运行结果,并用文字描述。(注意:long类型,在赋值的时候要和int类型做区分,需要在整数后加L(大写的L))

 

 

 

    3.2.2浮点类型    

        浮点类型简称浮点型,用来存储含小数部分的数值。Java语言中浮点类型分为单精度浮点类型(float)和双精度浮点类型(double),它们具有不同的取值范围。如图所示:

浮点型数据类型

数据类型 内存空间(8位等于1字节) 取值范围 float 32位 1.4E-45~3.4028235E38 double 64位 4.9E-342~1.7976931348623157E308

用两种浮点型编写一个程序,运行结果,并用文字描述。(注意:使用float型小数,需要在小数后面添加F或f)

 

浮点型的例题:【例3.2】根据身高体重计算BMI指数(实例位置:资源包、TM\sl\3\2)

        创建BMIexponent类,声明double型变量height来记录身高,单位为米: 声明int型变量weight记录体重,单位为千克: 根据BMI=体重/(身高*身高)计算BMI指数。实例代码如下

 

 3.2.3字符类型

        字符类型(char)用于存储单个字符,站16个位(两个字节)的内存空间。在定义字符型变量时要以单引号表示,如's'表示一个字符。用字符型编写一个程序,运行结果,并用文字描述。如图所示:

 

【例3.3】查看字符与Unicode码互换的结果(实例位置:资源包\TM\sl\3\3)

在项目中创建类Gess,编写如下代码,将Unicode表中某些位置上的字符以及一些字符在Unicode表中的位置在操作台上输出。

        转义字符是一种特殊的字符变量,它以反斜杠“\”开头,后跟一个或多个字符。转义字符具有特定的含义,不同于字符原有的意义。故称”转义“。

【例3.4】输出‘\’字符和‘★’字符(实例位置: 资源包\TM\sl\3\4)

'\'字符的转移为‘\\’;‘★’字符的Unicode码为2605,实例代码如下:

 3.2.4布尔类型

        布尔类型又称逻辑类型,简称布尔型,通过关键字boolean来定义布尔类型变量。布尔类型只有ture和false两个值,分别代表布尔类型的"真"和"假"。布尔值不能与整数进行互换。布尔类型通常被用在流程图控制中,作为判断条件。用布尔类型编写一个程序,运行结果,并文字描述 。如图所示:

 

 

3.3变量与常量

3.3.1标识符何关键词

1:标识符(注意:Java语言中的字母是严格区分大小写的)

        标识符是用来标识类名、变量名、方法名、数组名、文件名的有效字符序列。

标识符的要求:

1):Java语言规定标识符由任意顺序的字母、下划线(_)、数字、美元符号

2):不能以数字开头

3):关键字不可以作为标识符

2、关键字

        关键字又称保留字,是Java语言中已经被赋予特定意义的一些单词,不可以把这些单词作为标识符来用

3.3.2声明变量(可变化的)

        变量的使用是程序设计中一个十分重要的环节。声明变量就是告诉编译器这个变量的数据类型,这样编译器才知道需要配置多少空间给它,以及它能存放什么样的数据。在程序运行过程中,空间内的值是变化的,这个内存空间内的值就是变量值。

变量名的要求:

1:变量名必须是一个有效的标识符

2:变量名不可以使用Java中的关键字

3:变量名不能重复

4:应选择有意义的单词作为变量名

3.3.3声明常量(不可变化的)

        在程序运行过程中一直不会改变的量成为常量(constant),通常也被称为"final变量"。常量在整个程序中只能被赋值一次。常量命通常用大写字母,但这不是必须的。

                                                        final  整数类型  常量名称 [= 值]

        当变量被final关键字修饰时,该变量就变成了常量,必须在定义时就设定它的初值,否则将会产生编译错误。

【例3.5】尝试给常量赋值,观察是否会发生错误(实例位置:资源包\TM\sl\3\5)

在项目中创建类Exampiead,在类体中创造变量age与常量PI。在主方法中分别将变量与常量赋值,通过输出信息可测试变量与常量的有效范围。

3.3.4变量的有效范围

        由于变量被定义出来后只是暂存在内存中,等到程序执行到某一个点,该变量会被释放掉,也就是说变量有它的生命周期。因此,变量的有效范围是指程序代码能够访问该变量的区域,若超出该区域,则在编译时会出现错误。在程序中,一般会根据变量的"有效范围"将变量分为"成员变量"和"局部变量"。

1、成员变量

        类体中所声明的变量被称为成员变量,朝阳北路在整个类中都有效。类的成员变量又可以分为两种,即静态变量和实例变量。

2、局部变量

        在类的方法体中声明的变量(方法内部定义,"{"与"}"之间的代码中声明的变量)成为局部变量。局部变量只在当前代码块中有效,也就是只能在"{"与"}"之内使用。

        在类的方法中声明的变量,包括方法的参数,都属于局部变量。局部变量只在前定义的方法内有效,不能用于类的其他方法中。局部变量的生命周期取决于方法,当方法被调用时Java虚拟机会为方法中的局部变量分配内存空间,当该方法的调用结束后,则会释放中局部变量占用的内存空间,局部变量也将会被销毁。

【例3.6】把成员变量"排挤掉"的局部变量(实例位置:资源包\TM\sl\3\6)

在项目中创建类Val,分别定义名称相同的局部变量与成员变量,当名称相同成员变量将被隐藏。

3.4运算符

3.4.1赋值运算符

        赋值运算符以符号“=”表示,它是一个二元运算符(对两个操作数作处理),其功能是将右方操作数所含的赋值给左方的操作数。

【例3.7】使用赋值运算符同时为两个变量赋值(实例位置:资源包\TM\sl\3\7)

在项目中创建类Eval,在主方法中定义变量,使用赋值运算符变为变量赋值。

 

        由于赋值运算符“=”处理时会先取得右方表达式处理后的结果,因此一个表达式中若含有两个以上的“=”运算符,会从最右方的“=”开始处理。

3.4.2算术运算符

        Java中的算术运算符主要有+(加)、-(减)、*(乘)、/(除)、%(余数),它们都是二元运算符。如图所示。其中"+"和"-"运算符还可以作为数值的正负号。

【例3.8】使用算术运算符模拟计算机(实例位置:资源包\TM\sl\3\8)

创建ArithmeticOperator类,让用户输入两个数字,分别用5种运算符对这两个数字进行计算。

3.4.3自增和自减运算符

 

        自增、自减运算符是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量。自增、自减运算符的作用是使变量的值增1或减1.放在操作元前面的自增、自减运算符,会先将变量的值加1(减1),然后再使用该变量参与表达式的运算。放在操作元后面的自增、自减运算符,会先使变量参与表达式的运算符,然后再使该变量加1(减1)。

3.4.4比较运算符

        比较运算符属于二元运算符,用于程序中的变量之间、变量和白变量之间以及其他类型的信息之间的比较。比较运算符的运算结果是 boolean 型。当运算符对应的关系成立时,运算结果为 true,否则为 false。所有比较运算符通常作为判断的依据用在条件语句中。比较运算符共有 6 个.

【例3.9】使用不同的比较运算符判断两个整数的关系(实例位置:资源包\TM\sl\3\9)

在项目中创建类Compare,在主方法中创建整数变量,使用比较运算符对变量进行比较运算,并将运算后的结果输出。

 

3.4.5逻辑运算符

        返回类型为布尔类型的表达式,如比较运算符,可以被组合在一起构成一个更复杂的表达式。这是通过逻辑运算符来实现的。逻辑运算符包括&(&&)(逻辑与)、||(逻辑或)、!(逻辑非)。逻辑运算符的操作元必须是boolean型数据。在逻辑运算符中,除了“!”是一元运算符,其他都是二元运算符。逻辑运算符的用法和含义如图所示:


        结果为boolean型的变量或表达式可以通过逻辑运算符组合为逻辑表达式。

用逻辑运算符进行逻辑运算时,结果如图所示:

【例 3.10】使用不同的比较运算符判断两个整数的关系(实例位置:资源包\TM\sI3M10)
在项目中创建类 Calculation,在主方法中创建 3 个整数,分别记录男生人数、女生人数和总人数,使用逻辑运算符来判断“男生人数大于女生人数并且总人数大于 30 人”和“男生人数大于女生人数或者总人数大于30 人”这两种情况是否存在。


3.4.6位运算符

 

        位运算符除“按位与”和“按位或”运算符外,其他只能用于处理整数的操作数。包括byte、short、char、int和 long 等数据类型。位运算是完全针对位方面的操作。整型数据在内存中以二进制的形式表示,如 int 型变量 7 的二进制表示是 00000000 00000000 0000000 000011。

        左边最高位是符号位,最高位是 0 表示正数,若为1 则表示负数。负数采用补码表示,如-8的二进制表示为 111111111 111111111 111111 11111000。这样就可以对整型数据进行核位运算。


位移操作:

述运算符,还可以对数据按二进制位进行移位操作。Java 中的移位运算符有以下3种


左移就是将运算符左边的操作数的二进制数据,按照运算符右边操作数指定的位数向左移动。自
分补 0。右移则复杂一些。当使用“>>”符号时,如果最高位是 0.右移空的位就现入0,如果最高位
是 1,右移空的位就填入 1。

3.4.7三元运算符

        三元运算符的使用格式为:

条件式 ? 值1 :值2

        三元运算符的运算规则为:若条件式的值为true,则整个表达式取值1,否则取值2.例如:

boolean b =20 < 45 ? true:false;

        上述程序表达式"20<45"的运算结果返回真,那么boolean型变量b取值为true。相反,如果表达式的运算结果返回为假,则boolean型变量b取值为false。

        三元运算符等价于if...else语句,例如上述代码等价于:

boolean a;         //声明boolean型变量

if(20<45)            //将20 < 45 作为判断条件

        a=true;       //条件成立,将true赋值给a

else

        a=false;       //条件不成立,将false赋值给a

3.4.8运算符优先级

        Java中表达式就是使用运算符连接起来的符合Java规则的式子。运算符的优先级决定了表达式中运算执行的先后顺序。通常,优先级由高到低的顺序依次是:

        增量和减量运算

        算术运算

        比较运算

        逻辑运算

        赋值运算

        如果两个运算符有相同的优先级,那么左边的表达式要比右边表达式先被处理。左Java中众多运算符特定的优先级如图所示:

 3.5数据类型转换

        类型转换是將一个值从一种类型更改为另一种类型的过程。例如,可以将 String类型的数据“457”转换为数值型,也可以将任意类型的数据转换为 String 类型。
        如果从低精度数据类型向高精度数据类型转换,则永远不会溢出,并且总是成功的;而把高数据类型向低精度数据类型转换时,则会有信息丢失,有可能失败。
        数据类型转换有两种方式,即隐式转换与显式转换。3.
3.5.1 隐式类型转换
        从低级类型向高级类型的转换,系统将自动执行,程序员无须进行任何操作。这种类型的转换称为隐式转换。下列基本数据类型会涉及数据转换,不包括逻辑类型和字符类型。这些类型按精度从低到高排列的顺序为 byte <short <int<long <float <double。
        例如,可以将 int 型变量直接赋值给 float 型变量,此时 int 型变量将隐式转换成 float 型变量。代
码如下:
int x = 50;      //声明 int 型变量 x
float y = x;       //将 ×赋值给 y,y 的值为 50.0

       隐式转换也要遵循一定的规则,来解决在什么情况下将哪种类型的数据转换成另一种类型的数据。
表 3.10 列出了各种数据类型隐式转换的一般规则。

隐式类型转换规则
操作数1的数据类型操作数2的数据类型转换后的数据类型
byte、short、charintint
byte、short、char、int、longlong
byte、short、char、int、longfloatfloat
byte、short、char、int、long、floatdoubledouble

下面通过一个简单实例介绍数据类型隐式转换。
【例 3.11】使用隐式转换提升数值的精度(实例位置:资源包\TM\sI\3\11)
在项目中创建类 Conver,在主方法中创建不同数值型的变量,实现将各变量隐式转换。

 

3.5.2显式类型转换

当把高精度的变量的值赋给低精度的变量时,必须使用显式类型转换运算(又称强制类型转换)。语法如下:

(类型名)要转换的值

比如,将高精度数字转为低精度数字。代码如下:

int a = (int)45.23;       //此时输出a的值为45

long y = (long)456.6F     //此时输出y的值为456

int b = (int)'d';             //此时输出b的值为100

        执行显式类型转换时,可能会导致精度损失。除boolean类型外,其他基本类型都能以显式类型转换的方式实现转换。

3.6代码注释与编码规范

在程序代码中适当地添加注释,可以提高程序的可读性和可维护性。好的编码规范可以使程序易阅读和理解。本节将介绍Java中的代码注释方法以及应该注意的编码规范。

3.6.1代码注释

        1、单行注释

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

        2、多行注释

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

        3、文档注释

“/***”为文档注释标记。符号“p*”与“*”之间的内容均为文档注释内容。当文档注释出现在声明(如类的声明、类的成员变量的声明、类的成员方法的声明等)之前时,会被 Javadoc 文档工具读取作为Javadoc 文档内容。除注释标记不同外,文档注释的格式与多行注释的格式相同。

  • 3.6.2编码规范

        在学习开发的过程中要养成良好的编码习惯,规整的代码格式会为程序日后的维护工作提供极大的便利。在此对编码规则做了以下总结,供读者学习:
1、回每条语句尽量单独占一行,每条语句都要以分号结束。
“注意:程序代码中的分号必须为英文状态下输入的,初学者经常会将“;”写成中文状态下的“;”,此时编译器会报出 InvalidCharacter(非法字符)这样的错误信息。
2、在声明变量时,尽量使每个变量单独占一行,即使有多个数据类型相同的变量,也应将其各自放置在单独的一行上,这样有助于添加注释。对于局部变量,应在声明的同时对其赋予初始值。
3、在 Java代码中,空格仅提供分隔使用,无其他含义,开发者应控制好空格的数量,不要写过多的无用空格。
4、为了方便日后的维护,不要使用技术性很高、难懂、易混淆的语句。因为程序的开发者与维
护者可能不是同一个人,所以应尽量使用简洁、清晰的代码编写程序需要的功能。
5、对于关键的方法要多加注释,这样有助于阅读者了解代码的结构与设计思路。

        代码应该写在哪?这可能是第一次学习编程的读者最大的疑惑了。笔者对 Java 代码的主要结构做出了几点总结:
1、package 语句要写在类文件的第一行。如果类不在任何包中,可以不写 package 语句。

2、import 语句要写在类上方、package 语句下方

3、方法必须写在类的{}之内。方法的{}内不可以创建其他方法。
4、类的成员变量必须定义在类的{}之内、方法的{}之外的位置。方法的{}之内定义的变量均为局部变量。
5、除了上面几种类型的代码,其他类型代码都应该写在某个{}中(如代码块或方法体之内)。其他类型的代码包括局部变量、内部类等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值