面向对象——Java实验报告
实验四:
Java API
实验四 Java API(预习报告)
<center>
<strong>姓名:</strong>
<u>XXX</u>
  
<strong>班级:</strong>
<u>XXXXX</u>
  
<strong>学号:</strong>
<u>XXXXXXXXXXXX</u></center>
一、 实验目标:
(1)能够通过阅读Java API文档来灵活运用Java API中的一些常用类(例如String、StringBuffer、System、Runtime、Math、Random
等)来解决实际问题。
(2)能够灵活运用用Java语言的常用集合类(ArrayList、Map、Collections、Array
等)来解决实际问题。
二、实验环境
IntelliJ IDEA Community Edition 2021.1 x64 + openjdk-16.0.1
三、实验内容:
- 定义一个方法,根据用户身份证号码计算其年龄并输出。
问题分析: 由题可得出以下结构
class parse{ public parse(String identifys){ 身份证转data; } private void get_now_date(){ 获取现在时间; } private boolean check(){身份证正确性判断} public int Figure(){ 计算年龄} return -1;} private int date[]=new int[3]; private int now[]=new int[3];}
- 采用
Random
类或者Math
类随机生成一组随机数,存入List
集合类(ArrayList、LinkedList
等都可以),并利用Iterator
接口便利集合。
问题分析: 由题可得出以下结构
public class Randtest { 调用Iterator;//提前熟悉包 public static ArrayList<Integer> generateRandomNumber () { random,arraylist}
Java Iterator
(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代ArrayList
和HashSet
等集合。调用这个
Math.Random()
函数能够返回带正号的double
值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)
的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。
ArrayList
类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
- 获取当前的系统日期和时间来产生订单的单号,单号的构成:
D+年份+月份+日期+时钟+分钟+秒+系统用户账号
,要用到日期类Date
(通过使用API文档来掌握该类的用法)。
问题分析: 由题可得出以下结构
使用
LocalDate
获取时间public Order () { this.year = LocalDate.now().getYear(); this.month = LocalDate.now().getMonth().getValue(); this.time = LocalDateTime.now().toString().substring(11, 19); this.order = this.year + "" + this.month + time + account;}
- 编写一个程序,实现字符串大小写的转换并倒序输出。具体要求:
(1)使用for循环将字符串“ITcastHeiMa”
从最后一个字符开始遍历。
(2)遍历的当前字符如果是大写字符,就使用toLowerCase()
方法将其转换为小写字符,反之则使用在toUpperCase()
方法将其转换为大写字符。
(3)定义一个StringBuffer
对象,调用append()
方法依次添加遍历的字符,最后调用StringBuffer
对象的toString( )
方法,并将得到的结果输出。
问题分析: 由题可得出以下结构
import java.util.Locale; public class reverse { String origin = "ITcastHeiMa"; StringBuffer stringBuffer = new StringBuffer(""); for (int i = origin.length() - 1, j = 0; i >= 0; i--, j++) char c = origin.charAt(i); if (c <= 'z' && c >= 'a') stringBuffer.append((c + "").toUpperCase(Locale.ROOT)); if (c <= 'Z' && c >= 'A') stringBuffer.append((c + "").toLowerCase(Locale.ROOT)); stringBuffer.toString();
四、预习遇到的问题
对于相关知识熟悉度并不太充足,相关知识欠缺,应该尽力去尝试相关内容来训练去充分熟悉。对于接口以及抽象类的相关理解存在部分疑问。希望在实验中能通过各中渠道去学习并掌握相关知识。