工业机器人运动仿真编程实践——基于Android和OpenGL(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-23 19:35:06

点击下载

作者:郇极

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

工业机器人运动仿真编程实践——基于Android和OpenGL

工业机器人运动仿真编程实践——基于Android和OpenGL试读:

前言

本书介绍使用Java语言和OpenGL图形编程工具开发Android操作系统下工业机器人仿真软件的编程方法和程序实例,可以帮助读者学习Android操作系统下工业机器人仿真软件开发技术以及OpenGL编程技术。

平板电脑(Tablet Personal Computer)是目前广泛使用的移动多媒体设备。由于其具有丰富的显示、操作、计算和互联网功能,因此逐渐开始被应用于工业化自动控制领域。平板电脑既可以作为具有控制、操作和显示功能的全功能控制器,也可以作为主控制装置的操作和显示单元使用。控制过程的运动图形仿真能为控制系统操作和调试提供很大的方便,目前已经成为许多控制装置的必要功能和基本要求。

作者于2016年在北京航空航天大学的数控和伺服技术实验室网站上(www.nc-servo.com)发布了用于工业机器人教学和编程练习的虚拟工业机器人控制系统程序(PADROBOT)。它是运行在Android操作系统平板电脑或手机上的虚拟工业机器人控制系统程序,能够为使用者提供一个便捷、安全的工业机器人运动控制编程练习。使用者可以在平板电脑或手机上编写自己的机器人运动控制程序,然后在该系统上运行,从而学习工业机器人编程技术。该系统具有工业机器人控制系统的基本功能,包括运动控制程序创建、程序译码、关节坐标系运动控制、直角坐标系运动控制、工具姿态控制、直线和圆弧插补、工具补偿、工具更换、运行操作。

虚拟工业机器人控制系统程序(PAD ROBOT)是作者使用Java语言和OpenGL图形编程工具编写的工业机器人运动仿真应用程序。本书将作者开发控制系统PAD ROBOT时所编写的典型图形和动画编程程序介绍给读者,帮助读者学习工业机器人仿真软件开发技术及Android操作系统下的OpenGL编程技术。

本书的主要内容如下:

●第1章为概述,介绍了用平板电脑进行工业机器人仿真编程的意义和本书特色。

●第2章介绍了作者开发的两个机器人运动仿真样机,读者可以把它们安装在平板电脑和手机上,完成操作演示。

●第3章概要介绍了Java编程语言,给出了与本书后续内容相关的典型编程示例。

●第4章概要介绍了基于Android操作系统的开发环境,给出了与本书后续内容相关的典型编程示例。

●第5章以机器人运动仿真样机的基座部件为例,介绍应用Android操作系统和OpenGL编程的基本方法,完成一个在平板电脑或手机上运行的机器人运动仿真样机基座部件的3D显示示例。

●第6章以机器人运动仿真样机程序为例,完成机器人全部部件的3D建模和显示。

●第7章介绍机器人运动仿真操作界面的编程方法和编程示例。

●第8章介绍机器人运动控制的编程方法和编程示例,最终完成机器人的运动演示。

附录1~7为本书示例程序的源程序文档。

按照本书的内容顺序和示例程序,读者可以自己编写出一个简单的工业机器人运动仿真程序,在Android操作系统下的手机和平板电脑上运行。本书内容对使用OpenGL编程工具编写Android操作系统下的其他图形显示软件也具有参考作用。

本书配备的电子资源有:PAD ROBOT安装程序、GL ROBOT安装程序、_surfaced类的Java源程序、GL_CONST类的Java源程序、ROB_PAR类的Java源程序、JOINT类的Java源程序。读者可在www.cmpedu.com上下载。

书中的疏漏和不足之处敬请指导。作者

第1章 概述

工业机器人运动仿真是指机器人控制系统或仿真系统将机器人的控制程序转换成可视的动作过程的动画,将机器人的运动情况在显示器上直观地显示出来。在机器人使用领域,工业机器人运动仿真技术能够用于离线编程控制程序的检查,例如运动路径、速度、碰撞等,或用于工作现场其运行状态显示。在机器人控制软件开发领域,该技术可以用于控制软件功能和控制参数的测试。在机器人结构设计领域,可以用于机器人结构参数的检查和优化,例如,结构布局和工作空间的检查和优化等。操作人员培训也是工业机器人运动仿真技术的一个重要应用领域。操作人员可以在仿真系统上练习操作和编程,提高培训效率,避免操作事故。

平板电脑(Tablet Personal Computer)由于其具有丰富的显示、操作、计算和互联网功能,因此逐渐开始被应用于工业化自动控制领域。平板电脑既可以作为具有控制、操作和显示功能的全功能控制器,也可以作为主控制装置的操作和显示单元使用。控制过程的运动仿真能为控制系统操作和调试提供很大的方便,目前已经成为许多控制装置的必要功能和基本要求。

作者于2016年在北京航空航天大学数控和伺服技术实验室网站上(www.nc-servo.com)发布了用于工业机器人教学和编程练习的虚拟工业机器人控制系统程序(PAD ROBOT)。它是运行在具有Android操作系统的平板电脑或手机上的虚拟工业机器人控制系统程序,为使用者提供一个便捷、安全的工业机器人运动控制的编程练习环境。使用者可以在平板电脑或手机上编写自己的机器人运动控制程序,在该系统中运行来学习工业机器人编程技术。该系统具有工业机器人控制系统的基本功能,包括运动控制程序创建、程序译码、关节坐标系运动控制、直角坐标系运动控制、工具姿态控制、直线和圆弧插补、工具补偿、工具更换、运行操作。

虚拟工业机器人控制系统程序(PAD ROBOT)是作者使用Java语言和OpenGL图形编程工具编写的工业机器人运动仿真应用程序。作者提取出开发PAD ROBOT控制系统时的部分图形和动画程序并将其作为编程示例介绍给读者,帮助读者学习工业机器人仿真软件开发技术及Android操作系统下的OpenGL编程技术。

通过本书的学习,读者可以自己编写出一个工业机器人运动仿真程序,并在手机和平板电脑上运行。本书内容对使用OpenGL编程工具编写Android操作系统下其他图形显示软件也具有参考作用。

1.1 开发和编程环境

本书所介绍的工业机器人运动仿真编程方法和编程示例是使用Android(安卓)应用程序开发工具Eclipse和Java编程语言编写的,因此可以直接在Android平板电脑或手机上运行。Google公司提供了一个Android集成开发环境,下载网址为http://[1]developer.android.com/sdk/index.html。本书编程示例所使用的安装版本为jdk-6u22-windows-i586.exe。若将该程序安装在Windows操作系统中后,可以在Windows操作系统的PC上开发Android应用程序。若将Android安装程序下载到平板电脑或手机上,即可在平板电脑或手机上运行。

关于下载和安装Android集成开发环境的具体步骤及Eclipse相关操作,请读者参考其他相关书籍学习。

1.2 OpenGL图形编程工具

OpenGL(Open Graphics Library)是一个开放的图形程序接口,它为开发三维图形应用提供了功能强大的底层图形库。OpenGL的应用时间已经超过20年,是目前使用最广泛的三维图形编程工具之一。

OpenGL ES(OpenGL for Embedded Systems)是对OpenGL裁剪产生的子集,适用于手机、平板电脑、游戏机、家电设备、车载设备等。Android 2.2以后的版本开始支持OpenGL ES。

Android应用程序开发工具Eclipse集成了OpenGL ES编程接口,本书所提供的图形编程示例都是用Java语言和OpenGL ES接口完成的。

1.3 本书特点

本书作者于2016年在北京航空航天大学数控和伺服技术实验室网站上(www.nc-servo.com)发布了PAD ROBOT的Android应用程序APK。它是一个6自由度关节式虚拟工业机器人的应用程序,在Android操作系统的平板电脑或手机上运行,用于工业机器人教学和编程练习。PAD ROBOT的所有程序都是由本书作者编写的。

本书以PAD ROBOT的三维图形运动显示部分的程序为例,介绍使用OpenGL编写6自由度关节式工业机器人运动仿真程序的方法。所有示例程序均来自PAD ROBOT程序。为了突出介绍OpenGL工业机器人三维运动仿真编程方法,便于读者理解,删减了与OpenGL无关的部分程序,例如译码、插补、坐标变换、速度控制、自动屏幕尺寸适应、视图变换等。

本书的特点是用程序示例的方式介绍OpenGL工业机器人运动仿真控制的图形编程方法,在具体编程时,不对所调用的函数或参数做全面的解释,而只讲解在本书的应用。读者可以参考其他书籍来学习函数和参数调用的完整功能。

在开始使用本书示例学习OpenGL工业机器人图形编程之前,读者需要基本掌握Android应用程序开发工具Eclipse和Java编程语言。通过本书的学习读者可以自行编写出一个6自由度关节式工业机器人运动仿真程序,并在手机和平板电脑上运行。本书内容对使用OpenGL编程工具编写Android操作系统下其他图形显示软件也具有参考作用。[1]本书中涉及的该类网站可能因为被屏蔽的原因而打不开,读者可查阅相关信息自行解决。

第2章 工业机器人运动仿真样机介绍

本书的示例程序摘自作者编写的工业机器人(PAD ROBOT)运动仿真程序。本书随附的资源提供了PAD ROBOT安装程序,可以在Android手机或平板电脑上对其安装并运行。读者也可以从www.nc-servo.com网站下载该程序。为了便于学习基于OpenGL编写工业机器人运动仿真软件的基本方法,对PAD ROBOT程序做了简化,重点介绍使用OpenGL编写工业机器人3D图形显示程序的方法,删减了工业机器人控制技术方面的内容,例如数控程序译码、插补、坐标变换等程序。简化后的机器人运动仿真样机的程序名为gl_robot,本书随附的资源提供了其安装程序。

2.1 机器人运动仿真应用程序PAD ROBOT

虚拟工业机器人控制系统程序(PAD ROBOT)是运行在Android操作系统的平板电脑或手机上的,为使用者提供一个便捷、安全的工业机器人运动控制的编程练习。使用者可以在平板电脑或手机上编写自己的机器人运动控制程序,在该系统上运行以学习工业机器人编程技术。系统具有工业机器人控制系统的基本功能,包括运动控制程序创建、程序译码、关节坐标系运动控制、直角坐标系运动控制、工具姿态控制、直线和圆弧插补、工具补偿、工具更换、运行操作。

将随附资源中的pad_robot_k.apk安装程序复制到U盘并将其安装到Android手机或平板电脑。读者也可以从www.nc-servo.com网站下载该程序。程序启动后屏幕显示如图2.1所示的机器人。图2.1 PAD ROBOT界面

PAD ROBOT界面包含了6个控件、9个演示程序、4种工具,可以演示系统的基本功能和操作。演示操作步骤如下:

1)按“启动”键,可以观看第1个演示程序运行;

2)按“任务”键可以选择其他8个演示程序的运行;

3)按“帮助”键可以了解系统的全部功能,以帮助编写出多种类型数控程序。

2.2 机器人运动仿真样机GL ROBOT

为了便于读者学习OpenGL的基本编程技术,本书删减了PAD ROBOT中非OpenGL程序部分,例如译码、插补、坐标变换、速度控制、自动屏幕尺寸适应、视图变换等,形成了机器人运动仿真样机GL ROBOT来作为本书的编程示例程序。将随附资源中的gl_robot.apk安装程序复制到U盘并将其安装到Android手机或平板电脑,运行后的显示界面如图2.2所示。图2.2 GLROBOT运行界面

界面中的操作控件功能如下。

1)A0~A5:选中运动的关节,可以多选和解除选中状态;

2)move+:启动正方向运动;

3)move-:启动负方向运动;

4)stop:停止运动;

5)F%+/F%-:用于运动速度的调整,是相对于示例程序中给定的最大速度(900°/min)的百分比。

界面中显示控件的含义如下。

1)A0~A5:关节位置(°);

2)F%:运动速度调整的显示;

3)timer:定时器的计数值。

图2.3所示是GL ROBOT的6个关节的名称。图2.3 GL ROBOT关节名称

操作示例如下。

1)按A0~A5键,选中关节或解除选中的关节,可以多选;

2)按move+键,启动正方向运动;

3)按move-键,启动负方向运动;

4)按stop键,停止运动;

5)按F%-键,减速;

6)按F%+键,加速。

第3章 Java编程语言

Java语言是一种功能强大的跨平台程序设计语言,是目前应用最为广泛的计算机编程语言之一。本章主要介绍Java语言的基本特点、开发环境、程序结构、数据类型、表达式和运算符,以及编写工业机器人仿真软件所涉及内容的语法要点。Android应用程序采用Java语言编写,本章介绍的内容是在平板电脑中编写工业机器人仿真程序的基础,读者可以查阅其他相关参考书来了解更详细的Java语法规则。

3.1 Java程序设计

3.1.1 Java语言特点

Java是一种面向对象的编程语言,它具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、超级计算机、移动电话和互联网。Java语言的特点有如下5个方面。

1.面向对象

Java语言是完全面向对象的语言。Java提供了类的机制,在对象中封装了成员变量和方法,实现了数据的封装和信息隐藏。类通过继承和多态,实现了代码的复用。

2.简洁有效

Java语言省略了C++语言中难以理解、容易混淆的特性,例如头文件、指针、结构、单元、运算符重载、虚拟基础类等。因此,Java语言更加严谨、简洁。

3.安全性

Java语言摒弃了指针,一切对内存的访问都必须经过对象的实例变量来实现,阻止了以不法手段访问对象的私有成员,同时避免了指针操作中容易产生的问题。Java语言的运行环境提供了字节码校验器、类装载器和文件访问限定功能等内部安全机制,保证了Java程序和系统资源的安全性。

4.操作平台无关性

Java程序在编译器中被转化成与平台无关的字节码指令,因此,相同的程序不需要更改就可以在各种操作系统上运行。平台无关的特性使得Java程序可以被方便地移植到不同的机器上。

5.多线程

Java是第一个在语言方面提供内置多线程支持的高级语言,这大大简化了多线程程序的编写。3.1.2 开发环境

Java程序的开发环境可以分为开发工具集(Java Development Kit,JDK)和集成开发工具(Integrated Development Environment,IDE)。

1.JDK

JDK是Sun公司(已被Oracle公司收购)的Java程序开发工具集,它包括了Java运行环境、Java工具和Java基础类库,可以免费从Oracle公司的网址(http://www.oracle.com)下载。

2.IDE

除了JDK以外,一些集成开发工具为人们提供了更为方便的交互式开发环境。广泛使用的IDE包括Eclipse、NetBeans、JBuilder、Sun ONE Studio 5和IntelliJ IDEA。其中,Eclipse是IBM公司开发的一个开放源代码的、基于Java的可扩展开发平台。Eclipse附带了一个标准的插件集(包括JDK),它是非常重要的Java开发工具。Eclipse同样是Android应用程序的开发工具,本书示例程序全部使用Eclipse编写。第4章介绍了使用Eclipse搭建Android开发环境的方法。

3.2 Java语言基础

3.2.1 Java程序的符号集

1.关键字

关键字也称为保留字,是系统预定义的具有专门意义和用途的符号。表3.1列出了Java语言的全部关键字。表中具有*标记的关键字被保留,表示当前尚未使用。表3.1 Java关键字(续)

2.标识符

Java中的包、类、方法、参数和变量的名称,可以由任意的大(小)写字母、数字、下画线“_”和符号“$”组成。标识符不能以数字开头,也不允许使用Java中的关键字。以下是标识符示例:

Student UserNames_style$money val12

3.注释

为程序添加注释可以解释程序中某些语句的作用和功能,提高程序的可读性。Java的注释可以分为以下3种类型。

1)单行注释,其形式为“//+注释内容”。表示从双斜线“//”开始直到此行末尾的部分为注释。

2)多行注释,其形式为“/*注释内容*/”。表示从“/*”开始,直到“*/”结束的部分为注释。

3)文档注释,其形式为“/**注释内容*/”。表示从“/**”开始,直到“*/”结束的部分为注释。用这种方式注释的内容会被作为正式文档而被囊括到javadoc等工具生成的文档里。3.2.2 Java程序的基本组成

由Java的各种符号可以构成Java应用程序。本小节通过一个简单的程序说明Java应用程序的基本结构,该示例程序的功能是在屏幕上显示字符串“Hello world!”,代码如下所示:

1.分隔符

示例程序中使用的分隔符包括回车符“Enter”、空格符、制表符、分号“;”和大括号“{}”。其中,大括号表示类和方法的开始与结束,程序中的大括号的数目必须要成对匹配。

2.类定义

Java程序都是由类组成的。示例程序第1行定义了一个名称为JavaHello World的类。关键字class是类的标志;public是用来修饰class的,说明该类是公共类。class语句后面是一对大括号,其中的内容就是类的成员。本示例中为该类定义了一个main()方法。

3.main()方法

示例程序的第2行定义了main()方法。它是Java程序的执行入口。含有main()方法的类称为主类。一个Java程序中只能包含一个主类。关键字static表示main()方法是静态方法,void表示方法无返回值,String args[]是方法的参数。Main()方法声明语句后是一对大括号,其中的内容就是方法的主体。

4.方法主体

示例程序第3行是main()方法的主体,它调用了系统标准输出方法System.out.println(),向屏幕输出字符串“Hello world!”。3.2.3 常量与变量

常量是固定不变的量,一旦被定义,它的值就不能再被改变。常量名称通常使用大写字母表示,但这不是硬性要求。常量使用final修饰符进行声明,以下是常量的声明示例:

final int MAX_AXIS=127;

final double PI=3.1415926;

变量可为指定的内存空间命名,它的值可以被改变。变量的作用域是指可以访问该变量的程序代码范围。按照作用域的不同,变量可以分为类成员变量和局部变量。类成员变量在类的声明体中声明,它的作用域为整个类;局部变量在方法体或者方法的代码块中声明,它的作用域为它所在的代码块。变量的名称遵循标识符的命名规则,以下是变量的声明示例:

float feed_next_block;

int g0123,g01789;3.2.4 数据类型

基本数据类型是指Java语言固有的数据类型,可以分为整数类型、浮点类型、字符型和布尔型。Java语言的基本数据类型说明如表3.2所列。表3.2 Java语言的基本数据类型说明

Java语言有严格的数据类型限制。数据类型的转换方式可以分为隐式转换及强制转换。隐式转换分为两种情况:第一,在赋值操作时,如果将较短类型的数据赋给较长类型,则类型转换由编译系统自动完成;第二,在计算过程中,如果一个较短类型的数据与较长类型的数据进行运算,系统会自动把较短类型的数据转换成较长类型的数据,再进行运算。以下是隐式数据类型转换的示例:

doublex=100;//整数型数据100被隐式转化成double类型

强制转换的语法格式和示例如下:(数据类型)表达式

int result=(int)2.45;//浮点型数据2.45被强制转化成int类型,值为23.2.5 运算符和表达式

运算符是执行数学和逻辑运算的标识符。Java语言的运算符非常丰富。表达式是由常量、变量或其他操作符与运算符所组合而成的语句。表达式是程序组成的基本部分。表3.3列举了Java语言运算符的优先级、类型,并给出了对应的表达式示例。表3.3 Java语言的运算符和表达式(续)3.2.6 控制语句

控制语句用于控制计算机完成规定的程序分支和引用。表3.4是控制语句关键字的语义和示例。表3.4 控制语句关键字的语义和示例

3.3 示例程序设计的Java语法要点

3.3.1 类和对象

1.类的定义

将具有相同属性及相同行为的一组对象称为类,它是Java程序的基本组成单元。类、属性和方法的定义格式和作用如下。

[修饰符]class类名[extends父类名][implements接口1,接口2]{

类属性声明:[修饰符]属性类型 属性名

类方法声明:[修饰符]返回值类型 方法名(形式参数表)[throw异常]{}

}

1)修饰符定义了类、属性和方法的访问特性及其他特性。修饰符包括public、private、protected、static、final、abstract等。

2)继承是由现有的类创建新类的机制。子类(新的类)通过关键字extends继承父类(被继承的类)。Java的类只能有一个直接父类,使用接口可以实现多重继承。一个类可以通过关键字implements实现一个或多个接口。

3)类属性也称为字段或成员变量,它的作用域是整个类。

4)类方法定义了该类的对象所能完成的某一项具体功能。类的构造方法是一种特殊的方法,它的定义方式与普通方法的区别包括以下3点:

①构造方法的名称和类名相同;

②构造方法没有返回值;

③构造方法在创建对象时被自动调用。

以下是创建机器人仿真程序gl_robot中部件part0部分的示例代码:

2.创建对象

Java程序用类创建对象,通过对象之间的信息传递完成各种功能。创建对象就是在内存中开辟一段空间,存放对象的属性和方法。创建对象分为声明对象和实例化对象两个步骤,它们的格式如下:

类名 对象名; //对象的声明

对象名=new 类名(参数列表); //对象的实例化

也可以将两个步骤合为一个步骤,如下:

类名 对象名=new类名(参数列表); //对象的声明和实例化

以下是机器人仿真样机gl_robot中部件part0~part2的声明和实例化的示例代码:

public class viewRenderer implements Renderer{

//加载part0

private_part0 part0=new_part0();

//加载part1

private_part1 part1=new_part1();

//加载part2

private_part2 part2=new_part2();

//

……

}

3.对象的使用

通过访问对象的属性和方法可以使用对象,需要使用引用运算符“.”完成,其格式如下:

对象名.属性名 //使用对象中的属性

对象名.方法名 //使用对象中的方法

以下是机器人仿真程序gl_robot中使用对象_surface的属性和方法的示例代码:

//加载surface类

_surface surface=new_surface();

//调用surface类的rect_vertex()方法

surface.rect_vertex(p0,p1,p2,p3,normal_p0);

//引用surface类的变量

vtx_n=surface.vtx_n;3.3.2 枚举类型

Java 5以后的版本开始支持枚举类型。当需要一个有限集合,而且有限集合中的数据为特定值时,可以使用枚举类型。枚举类型的定义使用关键字enum,其语法格式如下:

以下是枚举类型OP_MODE的示例代码:

public enumOP_MODE{

AUTOMATIC, //自动模式

JOG, //手动模式

EDIT, //编辑模式

NULL //空闲

}3.3.3 数组

数组是类型相同的有序数据集合,提供数据的顺序操作和处理机制。

1.数组的声明和初始化

下面以一维数组为例介绍数组的声明和初始化过程。

一维数组的声明和初始化方法为:

数组类型[]数组名;

数组名=new数组类型[元素数目];

数组类型[]数组名=new数组类型[元素数目];

以下是一个元素数目为N的整型变量数组a的声明和初始化示例:

int[]a=new int[N];

2.数组的引用

Java语言的数组元素引用方法与C语言相同,下面是一个一维数组的引用示例:

b=a[i];

3.多维数组

使用多维数组可以处理更复杂的数据结构。以下是一个二维数组的声明和初始化示例:

int[][]a=new int[N][M];//N和M是整型变量或常数3.3.4 String类

1.String类字符串的初始化

使用String类可以定义字符串对象。下面介绍声明和初始化字符串的示例。

声明字符串对象s1:

String s1;

用关键字new创建空白字符串对象s2:

String s2=new String();

用赋值方式声明和初始化一个字符串对象s3:

String s3="OK!";

2.String类字符串与基本数据类型之间的转换

将基本数据类型转化成String类字符串有以下两种方法:

1)Java提供String.valueOf()静态方法,它的功能是返回变量的字符串形式,例如:

intnum=12345;

String str1=String.valueOf(num);//str1的内容是“12345”

2)使用“字符串+操作数”形式时,操作数会被自动转换为字符串类型,例如:

int axisNum=8;

String str2="最大轴数"+axisNum; //str2的内容是“最大轴数8”

基本数据类型都有一个对应的包装类(Wrapper Class),例如,int类型对应Integer类,float类型对应Float类。调用这些包装类的相应方法即可实现String类字符串向基本数据类型的转化,例如:

String s1="10";

int i=Integer.parseInt(s1);

String s2="3.14"

float f=Float.parseFloat(s2);3.3.5 异常处理

异常是程序运行过程中发生的、会打断程序正常执行的事件,例如被0除溢出、数组越界、文件丢失等都属于异常情况。3.3.4小节最后一段程序中的方法parseInt()和parseFloat()在执行String字符串转化时,如果字符串不合法也会抛出异常。

Java语言提供了try-catch-finally语句,用于实现异常的捕获和处理,其格式如下:

try{

可能抛出异常的语句块

}catch(异常类异常对象){

发生异常时的处理语句

}finally{//finally语句块是可以省略的且一定会运行到的程序代码

}

使用try-catch-finally语句后,String类字符串转化成基本数据类型的完整代码如下:

try{

String s1="10";

int i=Integer.parseInt(s1);

String s2="3.14"

float f=Float.parseFloat(s2);

}catch(NumberFormatException exp){

//发现非法字符,报警

……

}

Java语言还支持在程序中使用关键字throw抛出异常及自定义异常种类,请查阅相关Java语法参考书了解这些语法规则的详细内容。3.3.6 包的应用

包(Package)又称为类库,是Java语言的重要部分。包是类和接口的容器,用于分隔类名空间,一般将一组功能相近或者相关的类和接口放在一个包中,不同包中的类名可以相同。

创建包是指在当前目录下创建与包名结构一致的目录结构,并将指定的类文件放入该目录。包的声明使用关键字package。package语句必须是Java代码文件的第一条可执行语句,而且一个文件中最多只能有一条package语句。以下是机器人仿真程序gl_robot中包的声明语句,它指明该文件定义的类属于包com.example.gl_robot:packagecom.example.gl_robot; //gl_robot程序包的定义

包的引用分为两种方式。

第一种方式是将包名作为类名的一部分,采用“包名.类名”的格式访问其他包中的类。例如要访问java.util包中的Timer类,则该类可以写成java.util.Timer。

第二种方式是使用import命令将某个包内的类导入,程序代码不用写被引用的包名。例如在代码的开始部分加上“import java.util.*;”,则在程序的其他地方可以直接访问Timer类。以下是import语句的示例代码,其中通配符“*”代表包中的所有类:

import java.net.*; //引用java.net包的全部类

import android.widget.Button; //引用Android系统的Button控件

JDK中包括多种实用的包,如表3.5所列。java.lang包是编译器自动加载的,因此使用该包中的类时,可以省略“import java.lang.*”语句。表3.5 Java的常用包及其功能3.3.7 数学运算

java.lang包中提供了一个Math类,Math类包含用于执行数学运算的方法,如初等指数、对数、平方根和三角函数等。表3.6和表3.7分别列举出了Math类中静态常量和常用的方法。表3.6 Math类的静态常量表3.7 Math类的常用方法

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载