面向对象——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();
四、预习遇到的问题
对于相关知识熟悉度并不太充足,相关知识欠缺,应该尽力去尝试相关内容来训练去充分熟悉。对于接口以及抽象类的相关理解存在部分疑问。希望在实验中能通过各中渠道去学习并掌握相关知识。