版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、案例二 四输入模块数据采集Java语法基础目录一、案例展现二、Java的数据类型三、变量与常量四、运算符与表达式五、方法六、Java编码规范七、案例总结八、本章小结九、习题战略性信息产业教育服务提供商联世界 育未来创新物联教育案例展现实现单击界面上“采集”按钮,界面分别显示光照、温度、湿度的实际物理量值;并判断温度是否大于文本输入的给定温度值,是则1#风扇开;否则显示1#风扇关每单击一次“采集”按钮,单击次数+1;界面底部文字提示信息为“你是第n次采集数据”,其中n为你第几次单机了该按钮。效果如下图所示。战略性信息产业教育服务提供商联世界 育未来创新物联教育案例展现Case2_1运行效果战略性
2、信息产业教育服务提供商联世界 育未来创新物联教育2.1.1 任务分析(1) 创建一个空白安卓程序。(2) 拷贝动态库到项目中。(3) 编写UI布局xml文件。自行设计合适UI界面。LinearLayout布局使用标签嵌套控件渲染优先级:android:layout_weight=1,当控件有宽高时,是渲染优先级,0最高(如若控件a宽度为“填充父窗体”,控件b为“包裹内容”,并且ab在同一排,那么b将不可见。如果b控件渲染级别高于a,那么先绘制控件b,a控件宽度填充剩余空间)战略性信息产业教育服务提供商联世界 育未来创新物联教育2.1.1 任务分析控件权重:android:layout_weig
3、ht=1,当控件有宽或高为0时,是控件为0的宽或高的权重,按权重分配宽度(如果某控件宽度为0,那么它的宽度=(控件权重/所在排所有控件权重和)*父容器宽度)。(4)编写按钮点击代码,实现程序功能。监控、处理使用DecimalFormat类格式化浮点型数据。Stirng转换到Double使用动态库对象获取光照、温度、湿度。使用动态库开关风扇战略性信息产业教育服务提供商联世界 育未来创新物联教育2.1.2 操作步骤1.新建安卓项目,把随书光盘提供的实训设备操作类库文件复制到libs, 如下图所示战略性信息产业教育服务提供商联世界 育未来创新物联教育2.1.2 操作步骤2. 打开res/values
4、/strings.xml,添加代码。3. 编写好activity_main.xml界面代码。4. 打开MainActivity.java,进行编辑代码。5.部署应用程序,将ADAM4150数字量采集器串口线连接到开发箱COM2口,启动应用程序。战略性信息产业教育服务提供商联世界 育未来创新物联教育目录一、案例展现二、Java的数据类型三、变量与常量四、运算符与表达式五、方法六、Java编码规范七、案例总结八、本章小结九、习题战略性信息产业教育服务提供商联世界 育未来创新物联教育2.2.1 数据类型的划分2.2.1 数据类型的划分Java变量包括如下两大类数据类型:基本数据类型和对象数据类型。
5、基本数据类型包括:1. 整数:byte、short、int、long 2.浮点数:float、double3. 字符类型:char4. 布尔类型:boolean对象数据类型:Java类的实例对象类型。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.2.2 基本数据类型2.2.2 基本数据类型Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮 点型),一种字符类型,还有一种布尔型。1. byte(字节型):计算机中1字节一般来说占8位。2. char(字符型):占2字节,也就是16位。3. short(短整型):占2字节,也就是16位。4. int(整型):占4字节,也就
6、是32位。5. long(长整型):占8字节,也就是64位。6. float(单精度实型):小数点后保留7位有效数字,占32位。7. double(双精度实型):小数点后保留15位有效数字,占64位。8. boolean(布尔型):占1字节,8位。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.2.2 基本数据类型我们知道所有的数据都是以0和1的组合来存储的,例如整型数字1,在计算机中的实际存储形势为:00000000 00000000 00000000 00000001上面的每一个0或者每一个1都被称为1个位。基本数据类型如下表所示。战略性信息产业教育服务提供商联世界 育未来创新物
7、联教育类型字节数位数取值范围举例byte18-2727-1的整数-128,54,127short216-215215-1的整数1348,6543int432-231231-1的整数0,-1000,345678long864-263263-1的整数987657897,-12float432-231231的整数23.978,87Fdouble864-263263的整数2.0231,0.435Dchar216-215215的整数400,A,z,x,-23boolean18true,falsetrue2.2.2 基本数据类型byte(1)byte数据类型是8位、有符号的,以二进制补码表示的整数;最小值
8、是-128(-);最大值是127(-1);默认值是0。byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一。例如:byte a = 100,byte b = -50。(2)charchar类型是一个单一的16位Unicode字符。最小值是u0000(即为0);最大值是uffff(即为65,535);char数据类型可以储存任何字符。例如:char letter = A。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.2.2 基本数据类型Java中还有一种特殊的字符型数值,那就是转义字符。有一些特殊符号是不能通过一般字符来进行显示的,例如
9、换行符和制表符。在表中列出了Java中比较常用的转义字符。战略性信息产业教育服务提供商联世界 育未来创新物联教育转义字符描述ddd1到3位八进制数据所表示的字符(ddd)uxxxx1到4位十六进制数所表示的字符(xxxx)单引号字符”双引号字符反斜杠字符r回车)n换行f走纸换页t横向跳格b退格2.2.2 基本数据类型(3)shortshort数据类型是16位、有符号的以二进制补码表示的整数。最小值是-32768(-215);最大值是32767(215 - 1);short数据类型也可以像byte那样节省空间。一个short变量是int型变量所占空间的二分之一;默认值是0。例如:short s
10、= 1000,short r = -20000。(4)int整型是Java数据类型中的最基本类型,使用int表示。所谓整型就好比日常生活中的十进制数,是没有小数点的。在Java里整型是有符号的,且有正负之分。如-10、20。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.2.2 基本数据类型java中整数常量有3种表示方式:10进制、8进制(以0开头)和16进制(以0x或0X表示)。下面就对这三种进制来进行介绍。1)10进制:10进制数在日常生活中最常见,大家天天都在用。Java里定义一个10进制数如下。正的10进制数 :int i = 11;负的10进制数 :int j = -12
11、;2)8进制:8进制数的进制规则是满8进1,包含0-7的8个数字,在整数前面添加一个0就表示为8进制数。3)16进制数:16进制数的进制规则是满16进1,包含0-9,a-f的16个数字,在整数前面添加一个0x表示16进制数。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.2.2 基本数据类型如果你对八进制和十六进制的转换不太清楚的话,首先要知道十进制、八进制和十六进制的成员。十进制的基本成员:0、1、2、3、4、5、6、7、8、9八进制的基本成员:0、1、2、3、4、5、6、7十六进制的基本成员:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F(其中A、B、C、D、E、
12、F分别代表10、11、12、13、14、15)。例如,八进制数345转换成十进制数为:5*80+4*81+3*82例如,十六进制数45转换成十进制数为:5*160+4*81战略性信息产业教育服务提供商联世界 育未来创新物联教育2.2.2 基本数据类型long(5)对于大型计算,常会遇到很大的整数,超出int类型所表示的范围,这时要使用long类型。一个java整数常量默认是int类型,有两种情形必须清楚:1)如果直接将较小的整数常量(在byte或short的数值范围)赋给byte或short变量,系统会自动把这个整数常量当做byte和short类型来处理。2)如果使用一个较大的整数(超过int
13、 类型的表数范围)时,java不会自动把这个整数常量当做long类型处理,如果希望当成long处理,则应该在常量后面增加L。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.2.2 基本数据类型浮点数(6)浮点型同样也是Java数据类型中的基本类型,整型表示整数,浮点型则表示小数。所谓浮点类型就好比日常生活中的10进制数加上小数点。在Java里浮点类型是有符号且有正负之分的。1)float:单精度浮点数。声明为float类型的浮点数时,要在结尾加F或f,浮点类型默认的类型是double。正的浮点数:float i1 = 11.11F;负的浮点数:float j2 = -17.15f;战
14、略性信息产业教育服务提供商联世界 育未来创新物联教育2.2.2 基本数据类型2)double:双精度浮点数。声明为double类型的浮点数时,要在结尾加D或d。声明为double类型时结尾的D和d可加可不加。这里建议是在double数据类型的数后面加上D或者d,以便更能够和单精度浮点数区分。(7)boolean布尔型是一种起到判断作用的数据类型。boolean类型的取值非常简单,就好比日常生活中的真与假,在Java中用ture与false,表示真与假。例如:boolean b1 = false; boolean b2 = true;战略性信息产业教育服务提供商联世界 育未来创新物联教育2.2.
15、3 自动转换2.2.3 自动转换所谓自动转换就是不需要明确指出所要转换的类型是什么,是由Java 虚拟机自动来转换的。转换的规则就是小数据类型变大数据类型,但大的数据类型的数据精度有的时候要被破坏。下面看一段代码。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.2.3自动转换定义各种数据类型:int i = 123; char c1 = 22; char c2 = c; byte b = 2;自动转换的数据类型:int n = b; long l = i;自动类型转换:理论上数值范围小的类型可以自动转换为数值范围大的类型,如下:( byte-short)、char-int-long-
16、float-double 。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.2.4 强制转换所谓强制转换,是有一种强制性的,明明不能自动转换,而强制性地进行转换。看下面的例子,定义数据类型:int i = 22; long l= 33;强制转换数据类型char c = (char)i;int n = (int)l;战略性信息产业教育服务提供商联世界 育未来创新物联教育2.2.4 强制转换在其中i原来是一个int整型,但要将它强行转换成char字符型。同样l原来是一个long型,但要将它强行转换成int整型。通过前面的学习已经知道, long型的取值范围最大值可以为2的63次方减1,而
17、int型的取值范围最大值 只有2的31次方减1,所以如果l为一个大于2的31次方减1,在强制类型转换时就会丢失精度,使数值发生变化,这也是需要注意的地方。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.2.5 强制转换2.2.5 引用类型引用类型变量由类的构造函数创建,可以使用它们访问所引用的对象。这些变量在声明时被指定为一个特定的类型,比如Employee、Manager 等。变量一旦声明后,类型就不能被改变了。对象、数组都是引用数据类 型。所有引用类型的默认值都是null。一个引用变量可以用来引用与任何与之兼容的类型。 例子:Animal animal = new Animal(
18、“tiger”)。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.2.5 强制转换Java中所有对象都要通过对象引用访问,对象引用是指向对象存储所在堆中某个区域的指针,所有的对象数据类型都属于引用数据类型。例如下例所示,b和c都是引用类型:int a=1; /基本数据类型Integer b=new Integer(1); /对象引用Integer c=b; /对象引用引用类型和基本数据类型具有不同的特征和用法,当引用类型和基本数据类型用作某个类的实例数据时所指定的默认值时,对象引用实例变量的默认值为null,而基本数据类型实例变量的默认值与它们的类型有关。战略性信息产业教育服务提供商
19、联世界 育未来创新物联教育2.2.5 强制转换例如,不能对基本数据类型调用方法,但可以对对象调用方法:int a=1; /基本数据类型a.hashCode(); /错误Integer b=new Integer(1); /对象引用b.hashCode(); /正确对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。战略性信息产业教育服务提供商联世界 育未来创新物联教育目录一、案例展现二、Java的数据类型三、变量与常量四、运算符与表达式五、方法六、Java编码规范七、案例总结八、本章小结九、习题战略性信息产业教育服务提供商联世界 育未来创
20、新物联教育2.3.1 标识符2.3.1 标识符Java语言中,对于变量,常量,函数,语句块也有名字,我 们统统称之为Java标识符。标识符是用来给类、对象、方法、变量、 接口和自定义数据类型命名的。一、标识符组成Java标识符由数字,字母和下划线(_),美元符号($)组成。在Java中是区分大小写的,而且还要求首位不能是数字。最重要的是,Java关键字不能当作Java标识符。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.3.1 标识符2.3.1 标识符Java语言中,对于变量,常量,函数,语句块也有名字,我 们统统称之为Java标识符。标识符是用来给类、对象、方法、变量、 接口和自
21、定义数据类型命名的。一、标识符组成Java标识符由数字,字母和下划线(_),美元符号($)组成。在Java中是区分大小写的,而且还要求首位不能是数字。最重要的是,Java关键字不能当作Java标识符。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.3.1 标识符下面的标识符是合法的:myName , My_name , Points , $points,_sys_ta , OK ,_23b,_3_下面的标识符是非法的:2SuncIass/以数字2开头/是Java的关键字。有特殊含义#myname/含有其他符号#注意:符合标识符的命名规则并不是一种最好的命名方法。给一个标识符命名首先要
22、符合命名规范,还要符合含义。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.3.1 标识符二、关键字1.访问修饰符的关键字战略性信息产业教育服务提供商联世界 育未来创新物联教育关键字含义public公有的protected受保护的private私有的2.3.1 标识符定义类、接口、抽象类和实现接口、继承类的关键字、实例化对象2.3.包的关键字战略性信息产业教育服务提供商联世界 育未来创新物联教育关键字含义import引入包的关键字package定义包的关键字关键字含义class类interface接口abstract声明抽象implements实现extends继承new创建新对象2
23、.3.1 标识符数据类型的关键字4.战略性信息产业教育服务提供商联世界 育未来创新物联教育关键字含义byte字节型char字符型boolean布尔型short短整型int整型float浮点型long长整型double双精度void无返回null空值true真false假2.3.1 标识符条件循环(流程控制)5.战略性信息产业教育服务提供商联世界 育未来创新物联教育关键字含义if如果else否则,或者while当什么的时候for满足三个条件时switch开关case返回开关里的结果default默认do运行break跳出循环continue继续return返回instanceof实例2.3.1
24、标识符修饰方法、类、属性和变量6.战略性信息产业教育服务提供商联世界 育未来创新物联教育关键字含义static静态的final最终的不可被改变的super调用父类的方法this当前类的父类的对象native本地strictfp严格,精准synchronized线程,同步transient短暂volatile易失2.3.1 标识符7.错误处理8.枚举和断言战略性信息产业教育服务提供商联世界 育未来创新物联教育关键字含义enum枚举assert断言关键字含义catch处理异常try捕获异常finally有没有异常都执行throw抛出一个异常对象throws声明一个异常可能被抛出2.3.2 常量2.
25、3.2常量常量就是一个固定值。它们不需要计算,直接代表相应的值。常量指不能改变的量。 在Java中用final标志,声明方式和变量类似:final double PI = 3.1415927;虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量。Java中的常量包括整型常量、浮点型常量、布尔常量、字符常量等。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.3.2 常量整型常量:十进制:不能以0开头,多个09之间的数字;十六进制: 以0x或0X开头,例如:0x8a 、0X56d; 八进制:必须以0开头,例如:034 、0376 ;长整型:必须以L结尾,例如:87L、345L
26、浮点数常量:float 型 :2e3f 、 0.6f; double型:4.1d、 1.23d; 布尔常量:true 和 false; 字符常量: a、5 ;字符串常量:“hello”、“8698”、“nmain”; 转义字符:n表示换行;null常量:null,表示对象的引用为空。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.3.2 常量字面量可以赋给任何内置类型的变量。例如:byte a = 68;char a = Abyte、int、long、和short都可以用十进制、16进制以及8进制的方 式来表示。 当使用常量的时候,前缀o表明是8进制,而前缀0x代表16进制。例如:i
27、nt decimal = 100;int octal = 0144;int hexa =0x64;和其他语言一样,Java的字符串常量也是包含在两个引号之间的字符序列。下面是字符串型字面量的例子:Hello WorldtwonlinesThis is in quotes字符串常量和字符常量都可以包含任何Unicode字符。例如:char a = u0001;String a = u0001;战略性信息产业教育服务提供商联世界 育未来创新物联教育2.3.3 变量Java语言支持的变量类型有:1.2.3.局部变量成员变量类变量战略性信息产业教育服务提供商联世界 育未来创新物联教育2.3.3 变量一
28、、局部变量 局部变量声明在方法、构造方法或者语句块中; 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁; 访问修饰符不能用于局部变量; 局部变量只在声明它的方法、构造方法或者语句块中可见; 局部变量没有默认值,所以局部变量被声明后,必须经过初始化, 才可以使用。二、实例变量实例变量声明在一个类中,但在方法、构造方法和语句块之外;战略性信息产业教育服务提供商联世界 育未来创新物联教育2.3.3 变量三、类变量(静态变量)所谓静态变量就是只能存在一份,它属于类的,不随着对象的创建而建立副本。如果不想在创建对象的时候就需要知道一些相关信息,那么就声明为stat
29、ic类型的,被修饰为static类型的成员变量不属于对象,它是属于类的。四、实例变量和静态变量的区别 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。 在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.3.3 变量静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类
30、名来引用。 在内存中的区别类静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享,静态变量可以通过类名直接访问。静态变量的生命周期取决于类的生命周期,当类被加载的时候,静态变量被创建并分配内存空间,当类被卸载时,静态变量被摧毁,并释放所占有的内存。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.3.3 变量类的每一个实例都有相应的实例变量,每创建一个类的实例,java虚拟机为实例变量分配一次内存,实例变量位于堆区中,实例变量的生命周期取决于实例的生命周期,当创建实例时,为实例变量背创建,并分配内存,当实例被销毁时,实例有的
31、内存空间。变量被销毁,并释放所占战略性信息产业教育服务提供商联世界 育未来创新物联教育目录一、案例展现二、Java的数据类型三、变量与常量四、运算符与表达式五、方法六、Java编码规范七、案例总结八、本章小结九、习题战略性信息产业教育服务提供商联世界 育未来创新物联教育2.4.1 算术运算符假如a=3;b=2;战略性信息产业教育服务提供商联世界 育未来创新物联教育运算符运算范例结果说明+正号a=+b;a=2;-负号a=-b;a=-2;+加a= a+b;a=5;把a和b相加的值给a-减a=a-b;a=1;*乘a=a*b;a=6;/除a=a/b;a=1;由于是整形,所以a/b的值为整形1%取模a=
32、a%b;a=1;把a除b的余数赋值给a+自增(前)b=+a;b=4;a=4;先让a的值加1,再把a的值赋值给b+自增(后)b=a+;b=3;a=4;先把a的值赋值给b,再让a的值加1- -自减(前)b=- -a;b=2;a=2;先让a的值-1,再把a的值赋值给b- -自减(后)b=a- -;b=3;a=2;先把a的值赋给b,再让a减1字符串相加“Hello ”+ ”World”“Hello World”2.4.2 关系运算符关系运算符的结果是boolean类型的,只有两种true/false。注意:关系运算符中的“=”不能误写成“=”。战略性信息产业教育服务提供商联世界 育未来创新物联教育运算
33、符含义示例=等于a=b!=不等于a!=b大于ab小于a=大于或等于a=b=小于或等于a): 低位溢出,符号位不变,并用符号位补溢出的高位; 算术左移(): 低位溢出,高位补0;注意:逻辑右移()中的也跟着变。符号位(最高位)战略性信息产业教育服务提供商联世界 育未来创新物联教育运算符含义示例按位非(NOT)/取反b = a&按位与(AND)c = a & b|按位或(OR)c = a | b按位异或(XOR)c = a b右移b = a 2无符号右移,左边空出的位以0填充b = a 2左移b = a 12.4.5 赋值运算符假如a=3;b=2;战略性信息产业教育服务提供商联世界 育未来创新物联
34、教育运算符运算赋值范例结果说明=赋值a=3;b=2;a=3;b=2;+=加等于a=3;b=2;a+=ba=5;b=2;a=a+b;-=减等于a=3;b=2;a-=b;a=1;b=2;a=a-b;*=乘等于a=3;b=2;a*=b;a=6;b=2;a=a*b;/=除等于a=3;b=2;a/=b;a=1;b=2;a=a/b;%=模等于a=3;b=2;a%=b;a=1;b=2;a=a%b;2.4.6 条件运算符条件?表达式1:表达式2;如果条件的值为true则这个表达式的值为表达式1的值,否则为表达式2的值【例】public class Temppublic static void main(Str
35、ing args) boolean n = (5 3) ? true : false; System.out.println(n);以上实例编译运行结果如下:false战略性信息产业教育服务提供商联世界 育未来创新物联教育2.4.7 运算符的优先级战略性信息产业教育服务提供商联世界 育未来创新物联教育序列号符号名称综合性目数1.点从左到右双目( )圆括号从左到右 方括号从左到右2+正号从右到左单目-符号从右到左单目+自增从右到左单目-自减从右到左单目按位非从右到左单目!逻辑非从右到左单目3*乘从左到右双目/除从左到右双目%取余从左到右双目2.4.7 运算符的优先级战略性信息产业教育服务提供商联
36、世界 育未来创新物联教育4+加从左到右双目-减从左到右双目5带符号右移运算符从左到右双目无符号右移从左到右双目6小于从左到右双目大于从左到右双目=大于或等于从左到右双目instance of确定某对象是否属于指定的类从左到右双目2.4.7 运算符的优先级战略性信息产业教育服务提供商联世界 育未来创新物联教育7=等于从左到右双目!=不等于从左到右双目8&按位与从左到右双目9|按位或从左到右双目10按位异或从左到右双目11&短路非从左到右双目12|短路或从左到右双目13?:条件运算符从右到左三目2.4.7 运算符的优先级战略性信息产业教育服务提供商联世界 育未来创新物联教育14=赋值运算符从右到左
37、双目+=混合运算符从右到左双目-=*=/=%=&=|=2.4.8 表达式表达式是由操作数和运算符按一定的语法形式组成的符号序列。一个常量或一个变量是最简单的表达式,其值即该常量或变量的值;表达式的值还可以用作其他运算的操作数,形成更复杂的表达式。例如:布尔型表达式: x&y|z;整型表达式: num1+num2;例如,根据运算符优先级,下述条件语句分四步完成:result=sum=0?1:num/sum;第1步:result=sum=0?1:(num/sum) 第2步:result=(sum=0)?1:(num/sum)第3步:result=(sum=0)?1:(num/sum)第4步:res
38、ult=战略性信息产业教育服务提供商联世界 育未来创新物联教育目录一、案例展现二、Java的数据类型三、变量与常量四、运算符与表达式五、方法六、Java编码规范七、案例总结八、本章小结九、习题战略性信息产业教育服务提供商联世界 育未来创新物联教育2.5.1 方法的定义与调用2.5.1 方法的定义与调用Java中,方法只能在类中定义,由方法头和方法体两部分组成。格式:修饰符 返回值类型方法名(形参列表)局部变量/对象声明部分;语句部分;方法语法格式的详细说明如下:战略性信息产业教育服务提供商联世界 育未来创新物联教育2.5.1方法的定义与调用1.修饰符:修饰符可以省略, 也可以是public 、
39、 protected 、private、static、final、abstract、其中public、protected、private三个最多只能出现其中之一;abstract和final最多只能出现其中之一,它们可以与static组合起来修饰方法。2.方法返回值类型:返回值类型可以是Java语言允许的任何数据类型,包括基本类型和引用类型;如果声明了方法返回值类型,则方法体内必须有一个有效的return语句,该语句返回一个变量或一个表达式,这个变量或者表达式的类型必须与此处声明的类型匹配。除此之外,如果一个方法没有返回值,则必须使用void来声明没有返回值。3.方法名:方法名命名规则与属性命
40、名规则基本相同,但通常建议方法名以英文中的动词开头。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.5.1方法的定义与调用4.形参列表:形参列表用于定义该方法可以接受的参数,形参列表由零组到多组“参数类型形参名”组合而成,多组参数之间以英文逗号(,)隔开,形参类型和形参名之间以英文空格隔开。一旦在定义方法时指定了形参列表,则调用该方法时必须传入对应的参数值谁调用方法,谁负责为形参赋值。5.Java程序的入口main就为一个方法,参数为String args,它是个特殊的方法。方法体里多条可执行性语句之间有严格的执行顺序,排在方法体前面的语句总是先执行,排在方法体后面的语句总是后执行。
41、战略性信息产业教育服务提供商联世界 育未来创新物联教育2.5.1方法的定义与调用例如:定义计算平方值的方法static int square(int x)int s; s=x*x; return s;int是方法返回值类型,square是方法的名字;x是方法的形式参数,s是方法体内的局部变量。方法的参数是提供外界在执行方法的时候提供给方法的特殊描述信息的。例如上例中需要计算平方值,则需要提供给方法边长的值,即参数x的值。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.5.1一、形参方法的定义与调用方法头定义时所带的参数称为形参,它规定了方法的输入数据,调用时所带的参数称为实参。带多个
42、参数时,要指明各参数的类型,并用逗号把各参数分隔开来。二、返回值方法的返回值是方法的输出数据。定义方法头时,通过定义方法返回值类型说明该方法的输出数据类型,用return语句返回确定数值。方法无返回值时,返回值类型应为void。格式: return 表达式;三、构造方法构造方法是一个特殊的方法,定义构造方法的语法格式与定义方法的语法格式很像,语法格式如下:战略性信息产业教育服务提供商联世界 育未来创新物联教育2.5.1方法的定义与调用修饰符 构造方法名 (形参列表)/由零条到多条可执行性语句组成的构造方法执行体1.修饰符:修饰符可以省略, 也可以是public 、 protected 、pri
43、vate其中之一。2.3.构造方法名:构造方法名必须和类名相同。形参列表:和定义方法形参列表的格式完全相同。值得指出的是,构造方法不能定义返回值类型声明,也不能使用void定义构造方法没有返回值。如果为构造方法定义了返回值类型,或使用void定义构造方法没有返回值,编译时不会出错,但Java会把这个所谓的构造方法当成方法来处理。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.5.1四、方法的使用方法的定义与调用1.程序调用方法:大部分用户自定义的方法都属于程序调用方法。调用命令通过被调用方法的名称来说明要使用哪个自定义的方法,完成“形实结合”,为被调用方法的各形参赋初值。如: x=i
44、sPrime(i);当有多个同名方法时,根据参数列表来区分。2.系统调用方法:其最大特点是方法定义后,系统会在程序运行过程中自动去调用此方法才完成它所定义的任务。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.5.2 方法调用中的数据传递2.5.2 方法调用中的数据传递执行方法调用语句时,或者方法被系统自动调用时,程序的流程将转移到被调用方法,实际参数的数值被传给形式参数作初值,流程从被调用方法的第一个语句开始执行。一、传递的参数为基本类型时,传递的是该类型的值。二、传递的参数为对象引用类型时,也是利用的传值的方式进行的。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.5.
45、3 变量的作用域生命周期与作用域是两个不同的概念: 生命周期是对象或变量生存的时段,作用域是对象或变量起作用的地方。即生命周期定义的是时间,作用域定义的是空间。一、变量的生命周期生命周期是指从产生到消亡的过程。例如:静态变量:类的静态变量在内存中只有一个,Java虚拟机在加载类的 过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名被访问。静态变量的生命周期取决于类的生命 周期,当加载类的时候,静态变量被创建并分配内存,当卸载类的时候,静态变量被销毁并撤销所占用的内存。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.5.3 变量的作用域实例变量:
46、类的每个实例都有相应的实例变量。每创建一个类的实例,Java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中。实例变量的生命周期取决于实例的生命周期,当创建实例的时候,实例变量被创建并分配内存,当销毁实例的时候,实例变量被销毁所占内存。局部变量:当Java虚拟机调用一个方法时,会为这个方法中的局部变量分配内存。当Java虚拟机结束调用一个方法时,会结束这个方法中局部变量的生命周期。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.5.3 变量的作用域二、对象的生命周期对象会经过三个步骤:声明、创建、和赋值。对象的生命周期是指从构造方法创建对象,到对象不再被使用时(无引用),Java
47、的垃圾收集器将“回收”该对象,即对象被清除的过程。有三种情况可以释放对象的引用,即Java会自动清除对象:1.引用永久性地离开它的范围。通常是方法调用完毕,释放方法的变量、对象。如:voidfun()Student stu = new Student();调用方法时创建对象stu,调用结束后stu消失。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.5.3 变量的作用域2.引用被赋值到其他对象上。Student stu1 = new Student(“Tom”,18);Student stu2 = new Student(“Jack”,19);stu1 = stu2; / stu1原来引用的对象被释放3.直接将引用赋值为空nul
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026重庆市两江新区教育事业单位面向应届高校毕业生考核招聘20人参考题库【夺冠】附答案详解
- 2026重庆市铜梁区选聘区外教育事业单位人员20人模拟试卷及完整答案详解【全优】
- 汽车检验站考试题及答案
- 2026中国人民大学党委宣传部(融媒体中心)招聘3人模拟试卷及参考答案详解(综合题)
- 农业科技技术试题及答案
- 心理学财运测试题及答案
- 简阳市退役军人服务中心关于公开招聘编外人员的模拟试卷附参考答案详解(达标题)
- 2026浙江宁波市江北区营商环境办招聘编外人员8人模拟试卷附答案详解【夺分金卷】
- 律师应聘考试题库及答案
- 碳中和碳足迹监测平台
- 光伏发电设备安装运维手册
- 2026年造价工程师考试复习资料包
- 牛羊屠宰兽医卫生检验人员考试题库及答案解析
- 乡村网格员考试题目及答案
- 码头供电监理预验收报告范本
- 病人的搬运技术
- 保洁机场培训
- 街道法律明白人培训课件
- 2026年上海市辅警人员招聘考试真题及答案
- 2025秋国开电大市场营销学形考任务1234参考答案
- 2025口服解热镇痛药物安全用药专家共识
评论
0/150
提交评论