面向对象——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

三、实验内容:

  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];}
  1. 采用Random类或者Math类随机生成一组随机数,存入List集合类(ArrayList、LinkedList等都可以),并利用Iterator接口便利集合。

问题分析: 由题可得出以下结构

public class Randtest { 调用Iterator;//提前熟悉包 public static ArrayList<Integer> generateRandomNumber () { random,arraylist}

  • Java Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代 ArrayListHashSet 等集合。
  • 调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。
  • ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
  1. 获取当前的系统日期和时间来产生订单的单号,单号的构成: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. 编写一个程序,实现字符串大小写的转换并倒序输出。具体要求:

(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();

四、预习遇到的问题

  对于相关知识熟悉度并不太充足,相关知识欠缺,应该尽力去尝试相关内容来训练去充分熟悉。对于接口以及抽象类的相关理解存在部分疑问。希望在实验中能通过各中渠道去学习并掌握相关知识。