




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7讲基于文本的应用程序 命令行参数 7 1命令行参数命令行参数是在运行时传递给Java应用程序的参数 每个命令行参数放置在args数组中 其传递给staticmain方法 例如 publicstaticvoidmain String args 程序示例 publicclassTestArgs publicstaticvoidmain String args for inti 0 i args length i System out println args i is args i 当运行 D javaTestArgsmyfirst这里my和first就是传递给main的参数 系统属性 7 2系统属性在Java应用程序运行时 特别是需要在跨平台工作环境下运行时 需要确定操作系统类型 用户JDK版本和用户工作目录等随工作平台变化的信息 来保证程序正确运行 一般情况下 可以利用JDK提供的系统属性类 Properties 中的方法 快速地获取工作环境信息 另外 程序开发人员还可以定义与应用程序相关的系统属性文件 在用户程序执行过程中动态地加载程序员定义的属性文件来控制程序运行 系统属性包括关于当前用户 Java运行时的当前版本和用来分隔文件路径名称的组成部分的字符的信息 System getProperties 方法返回Properties对象 System getProperty String 方法返回表示名称为property值的字符串 System getProperty String String 方法使您提供默认字符串值 第二个参数 其在如果名称为property不存在的情况下返回 控制台I O 7 3控制台I O应用程序使用控制台I O与用户进行交互 Java2SDK支持在java lang System类中具有三个公共变量的控制台I O 变量System out使您向标准输出写入 它是类型PrintStream的对象 变量System in使您从标准输入读取 它是类型InputStream的对象 变量System err使您向标准错误写入 它是类型PrintStream的对象 7 3 1标准输入输出1 标准输出 System out 1 print和println方法println将常量 变量或表达式的值输出到屏幕 可以有0个或1个参数 0个参数 则输出一回车换行 光标移动到下一行行首 1个参数 该参数可以是各种类型 结果都转换成相应的字符串类型输出 输出给定所有内容后 输出一个回车换行 例如 inti 3 j 4 System out println i j 输出为 7System out println 分别为 i j 输出为 分别为34在参数输出时 符号可以作为加运算符使用 也可以作为多个输出项的连接符号使用 print方法需要一个参数来输出 可用的参数类型与println相同 区别在于输出参数的值后不输出回车换行 2 printf和format格式输出方法要控制输出数据的格式 可在这两个方法的参数中对每一输出项 使用 格式符进行格式控制 例如 System out printf a d tb f tc c a b c 或 System out format a d tb f tc c a b c 为了能得到正确输出的数据和格式 不同类型的输出项应使用不同的格式符来进行格式控制输出 适用于基本类型和字符串类型输出的常用格式符有 b布尔型数据 c字符 d十进制整数 f十进制实数 s字符串 n输出换行符 e或 g科学记数法形式的十进制实数第一个参数为输出格式 字符串形式 后面参数列出要输出的数据变量 2 标准输入 System in 1 read方法read 从键盘输入整数值在0 255之间的byte值 int类型 若程序运行时需要从键盘输入其他类型的数据 则需要使用Java提供的输入 输出功能 不论需从键盘输入何种类型的数据 Java从键盘接收数据都是以字符串的形式进行 再根据实际数据的需要进行类型转换 应用本方法时要使用Java的异常处理机制 例 键盘输入一个字符 并输出它在Unicode字符集中的前一个字符和后一个字符 importjava io 引入java io包classCharDemo publicstaticvoidmain Stringargs charc c1 c2 System out println 请输入一个字符 并按回车键 try c char System in read 输入字符c1 char c 1 c2 char c 1 System out println c1 System out println c2 catch IOExceptione e printStackTrace 打印异常信息 2 使用next方法若使用Java提供java util scanner类中的各种next方法 可从键盘输入各种基本类型和字符串类型的数据 不论需从键盘输入何种类型的数据 Java从键盘接收数据都是以字符串的形式进行 next方法要根据输入数据的类型来选用 有nextByte nextInt nextShort nextLong nextFloat nextDouble nextBoolean和next 以空格和回车为结束标记的字符串输入 等适用于不同类型数据输入的方法 使用next方法进行键盘输入的例子如下 例 从键盘输入三角形的三个边长 求这个三角形的面积 importjava util Scanner classTriArea publicstaticvoidmain Stringargs System out printf 请输入三角形的三边长 Scannersc newScanner System in doublea sc nextDouble doubleb sc nextDouble doublec sc nextDouble doublet a b c 2 0 doubles Math sqrt t t a t b t c System out format 三角形的面积为 f n s Strings sc next System out format 三角形的面积为 s n s 7 3 2对话框输入输出1 使用showMessageDialog 输出信息对话框 方法Java中的JOptionPane showMessageDialog方法是用对话框的形式来进行输出 支持一个输出项 在输出内容较多时 也可用字符串连接的形式来输出 importjavax swing JOptionPane importstaticjava lang Math classDialogDemo publicstaticvoidmain Stringargs Strings1 sin30度的值 s1 s1 sin PI 30 180 s1 s1 ncos30度的值 s1 s1 cos PI 30 180 JOptionPane showMessageDialog null s1 2 使用showInputDialog方法输入信息使用Java提供的javax swing JOptionPane类中的showInputDialog方法 可从输入信息对话框中输入一个字符串对象 需要时 可进行类型转换 得到所需类型的输入数据 例 使用对话框进行程序的输入输出 输入一个代表年号的整数 求这一年的元旦是星期几 元旦是星期几的计算公式 设年号为y 按整数运算 s y y 1 4 y 1 100 y 1 400 s除以7的余数即为星期数 余数为0表示星期日 importjavax swing JOptionPane classYuanDan publicstaticvoidmain Stringargs ints y y Integer parseInt JOptionPane showInputDialog 请输入一个年号 s y y 1 4 y 1 100 y 1 400 s s 7 JOptionPane showMessageDialog null y 年的元旦是星期 s parseInt函数把参数解析为int类型程序运行的输入输出界面及结果见右图 集合API 7 4集合APIjava util包提供了集合 set 列表 list 和映射 map 等工具 集合 collection 是表示一组称之为其元素的对象的单个对象 集合API包含将对象分组为以下之一的接口 Collection 一组称之为元素的对象 任何特定排序 缺少 和允许重复由每个实现指定 Set 无序的集合 不允许重复 List 有序的集合 允许重复 7 4 1集合的提出需要能够存储一组数据的容器 虽然数组可以实现 但是如果我们需要存储的数据的个数多少并不确定 这一点上 如果使用数组来存储的话 就显得十分的笨拙 比如说 我们需要在容器里面存储某个应用系统的当前的所有的在线用户信息 而当前的在线用户信息是时刻都可能在变化的 为解决诸如此类问题 Java里面就设计了容器集合 不同的容器集合以不同的格式保存对象 7 4 2集合框架集合是由一组用来操作对象的接口组成 不同接口描述不同类型的组 在很大程度上 理解了接口 就理解了框架 框架分类 Collection 对象之间没有指定的顺序 允许重复元素 Set 对象之间没有指定的顺序 不允许重复元素List 对象之间有指定的顺序 允许重复元素 并引入位置下标 Map 接口用于保存关键字 Key 和数值 Value 的集合 集合中的每个对象加入时都提供数值和关键字 Map接口既不继承Set也不继承Collection Java2框架还引入了六个集合实现 如下表所示 7 4 3Set集合Java中Set的概念和数学中的集合 set 一致 都表示一个集内可以存放的元素是不能重复的 Set接口继承Collection接口 而且它不允许集合中存在重复项 所有原始方法都是现成的 没有引入新方法 具体的Set实现类依赖添加的对象的equals 方法来检查等同性 importjava util publicclassSetExample publicstaticvoidmain String args Setset newHashSet set add one set add second set add 3rd set add newInteger 4 set add newFloat 5 0F set add second set add newInteger 4 System out println set 7 4 4List集合List是容器的一种 表示列表的意思 当我们不知道存储的数据有多少的情况 我们就可以使用List来完成存储数据的工作 List就是列表的意思 它是Collection的一种 即继承了Collection接口 以定义一个允许重复项的有序集合 该接口不但能够对列表的一部分进行处理 还添加了面向位置的操作 List是按对象的进入顺序进行保存对象 而不做排序或编辑操作 它除了拥有Collection接口的所有的方法外还拥有一些其他的方法 importjava util publicclassListExample publicstaticvoidmain String args Listlist newArrayList list add one list add second list add 3rd list add newInteger 4 list add newFloat 5 0F list add second list add newInteger 4 System out println list 7 4 5泛型 简介 泛型 Generictype或者generics 是对Java语言的类型系统的一种扩展 以支持创建可以按类型进行参数化的类 可以把类型参数看作是使用参数化类型时指定的类型的一个占位符 就像方法的形式参数是运行时传递的值的占位符一样 一般可以在集合框架 Collectionframework 中看到泛型的动机 泛型的主要目标是提高Java程序的类型安全 通过知道使用泛型定义的变量的类型限制 编译器可以在一个高得多的程度上验证类型假设 尽管减少强制类型转换可以降低使用泛型类的代码的罗嗦程度 但是声明泛型变量会带来相应的罗嗦 比较下面两个代码例子 该代码不使用泛型 ArrayListlist newArrayList list add 0 newInteger 42 inttotal Integer list get 0 intValue 该代码使用泛型 ArrayListlist newArrayList list add 0 newInteger 42 inttotal list get 0 intValue 在简单的程序中使用一次泛型变量不会降低罗嗦程度 但是对于多次使用泛型变量的大型程序来说 则可以累积起来降低罗嗦程度 迭代器 集合的迭代迭代是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中铁安全员及答案
- 2025案例:合同无效的争议解决
- 2025外汇代客理财服务合同协议
- 2025外贸代理销售合同
- 薪资结算和经济补偿合同5篇
- 无证房屋转让合同(标准版)
- 石材开采合同(标准版)
- 汽车周期性生产计划考试题
- 机械安全故障诊断考试题
- 直管用工试题及答案
- 机加工安全生产培训考核试题及答案(班组级)(精)
- 电梯从业证考试试题及答案解析
- 第二十四届上海市青少年计算机创新应用竞赛 python校内选拔试题及答案
- 江苏省宿迁市泗阳县2024-2025学年高二下册期末调研测试语文试题【附答案】
- 2025年《传染病防治法》综合培训试题(附答案)
- 储能电站项目实施方案
- 墙布工厂工程定制方案(3篇)
- 2025年工勤技师考试题库及答案
- 新鲜的牛肉采购合同范本
- 2025至2030年中国室内亲子游乐场行业市场评估分析及投资发展盈利预测报告
- 运动员医疗保障体系-洞察及研究
评论
0/150
提交评论