杰瑞科技汇

Java语言程序设计实验指导如何高效学习?

《Java语言程序设计》实验指导手册

前言

本实验指导旨在配合《Java语言程序设计》理论课程,通过一系列精心设计的实验,帮助学生巩固理论知识,提升编程实践能力、问题解决能力和工程素养,实验内容由浅入深,从基础的语法练习到综合的项目开发,覆盖了Java SE的核心知识点。

学习目标:

  1. 掌握环境: 熟练使用JDK、IDE(如IntelliJ IDEA或Eclipse)进行Java程序的编写、编译、调试和运行。
  2. 夯实基础: 深入理解Java基本语法、数据类型、流程控制、数组和方法。
  3. 理解面向对象: 熟练运用类、对象、封装、继承、多态等面向对象思想进行程序设计。
  4. 熟悉核心API: 掌握常用类(如String, Math, Date)、集合框架(List, Set, Map)、I/O流和异常处理机制。
  5. 提升能力: 具备阅读和分析代码、调试程序、设计小型应用以及团队协作开发的能力。

第一部分:实验环境搭建

在开始实验之前,必须正确配置开发环境。

实验目标:

  1. 安装并配置Java Development Kit (JDK)。
  2. 安装并配置集成开发环境。
  3. 编写并成功运行第一个Java程序。

实验步骤:

  1. 安装JDK:

    • 访问Oracle官网或OpenJDK官网,下载与你操作系统匹配的最新LTS(长期支持)版本的JDK。
    • 运行安装程序,记住安装路径(C:\Program Files\Java\jdk-17)。
    • 配置环境变量:
      • 新建系统变量 JAVA_HOME,值为你的JDK安装路径。
      • 编辑系统变量 Path,新建一项,值为 %JAVA_HOME%\bin
    • 打开命令行(CMD),输入 java -versionjavac -version,如果显示版本号,则安装成功。
  2. 安装IDE:

    • 推荐 IntelliJ IDEA (Community Edition 免费版): 功能强大,对Java支持最好。
    • 备选 Eclipse: 经典开源IDE。
    • 下载并安装IDE,初次运行时选择配置JDK,指向你刚才安装的JAVA_HOME
  3. 编写第一个程序 "Hello, World!":

    • 在IDE中新建一个Java项目。
    • 在项目中创建一个名为 HelloWorld.java 的文件。
    • 输入以下代码:
      public class HelloWorld {
          public static void main(String[] args) {
              System.out.println("Hello, World!");
          }
      }
    • 运行程序(通常点击绿色三角按钮),在控制台应看到输出 Hello, World!

第二部分:基础实验

这部分实验旨在巩固Java的基础语法和核心概念。

Java基础语法与流程控制

  • 实验目的:
    1. 掌握Java基本数据类型、变量、运算符的使用。
    2. 熟练运用if-elseswitchforwhiledo-while等流程控制语句。
    1. 成绩等级评定: 编写一个程序,输入一个学生的百分制成绩,输出其对应的等级(A: 90-100, B: 80-89, C: 60-79, D: 0-59, E: 成绩无效)。
    2. 素数判断: 编写一个方法,判断一个整数是否为素数(质数),并在main方法中测试。
    3. 九九乘法表: 使用嵌套for循环,在控制台打印出标准的九九乘法表。

方法与数组

  • 实验目的:
    1. 理解方法的定义、调用、参数传递和返回值。
    2. 掌握一维数组和二维数组的声明、初始化、遍历和常用操作。
    1. 数组操作工具类: 创建一个包含main方法的类,并实现以下静态方法:
      • printArray(int[] arr): 打印数组元素。
      • findMax(int[] arr): 找出数组中的最大值。
      • reverseArray(int[] arr): 反转数组。
      • bubbleSort(int[] arr): 使用冒泡排序对数组进行升序排序。
    2. 二维数组应用: 创建一个3x3的二维数组,并使用循环为其赋值(赋值为行索引和列索引的和),然后打印出这个矩阵。

面向对象基础(类与对象)

  • 实验目的:
    1. 掌握类的定义,包括成员变量(属性)和成员方法。
    2. 理解对象的创建和使用(实例化)。
    3. 掌握构造方法的作用和重载。
    1. “学生”类: 设计一个Student类。
      • 属性: id (学号), name (姓名), age (年龄)。
      • 构造方法: 至少提供一个无参构造方法和一个带参构造方法。
      • 方法: study() (打印“XXX正在学习”), introduce() (自我介绍)。
    2. 测试类:main方法中,创建Student类的多个对象,并调用其方法,观察输出结果。

面向对象进阶(封装、继承、多态)

  • 实验目的:
    1. 理解并应用封装(private关键字和getter/setter方法)。
    2. 掌握继承的实现和super关键字的使用。
    3. 理解多态的概念,并能通过方法重写和方法重载体现。
    1. “形状”继承体系:
      • 创建一个父类Shape,包含一个抽象方法calculateArea()
      • 创建子类CircleRectangle,继承Shape,并重写calculateArea()方法。
      • 在测试类中,创建Shape类型的数组,分别存入CircleRectangle对象,然后遍历数组并调用calculateArea()方法,观察多态行为。
    2. “员工”类体系:
      • 创建一个Employee基类,包含name, salary等属性,以及work()方法。
      • 创建ManagerDeveloper子类,继承Employee,并重写work()方法,描述各自的工作内容。
      • Employee类中添加一个getDetails()方法,在子类中重写该方法,提供更详细的信息。

第三部分:核心API应用

这部分实验深入Java标准库,学习解决实际问题的常用工具。

字符串处理与常用类

  • 实验目的:
    1. 熟练掌握String类的常用方法(length, charAt, substring, indexOf, replace, split等)。
    2. 了解StringBuilderStringBuffer的区别与应用场景。
    3. 使用Math, Date, Calendar等常用工具类。
    1. 字符串反转与统计: 编写一个程序,接收用户输入的一行字符串,实现以下功能:
      • 将字符串反转。
      • 统计其中字母、数字、空格和其他字符的数量。
    2. 敏感词过滤: 定义一个包含敏感词的数组,再输入一段文本,将文本中的所有敏感词替换为。

集合框架

  • 实验目的:
    1. 掌握List, Set, Map三大集合接口的特点和区别。
    2. 熟练使用ArrayList, LinkedList, HashSet, HashMap等常用实现类。
    3. 掌握集合的遍历方式(迭代器、for-each循环)。
    1. 使用List存储学生信息: 创建一个ArrayList<Student>(使用实验三的Student类),添加多个学生对象,然后遍历并打印所有学生的信息。
    2. 使用Set去除重复: 创建一个HashSet<String>,向其中添加一些重复的字符串,最终遍历集合,观察重复元素已被自动去除。
    3. 使用Map统计单词频率: 读取一段英文文本,使用HashMap<String, Integer>来统计每个单词出现的次数。

异常处理

  • 实验目的:
    1. 理解异常的概念和体系结构。
    2. 掌握try-catch-finally语句块的使用。
    3. 学会使用throws声明和throw抛出异常。
    1. 文件读取异常处理: 尝试读取一个不存在的文件,使用try-catch捕获FileNotFoundException,并给出友好的错误提示。
    2. 数组越界异常处理: 创建一个长度为5的数组,在代码中尝试访问索引为5的元素,捕获ArrayIndexOutOfBoundsException
    3. 自定义异常: 设计一个InvalidAgeException(自定义异常),在Student类的setAge方法中,如果年龄小于0或大于120,则抛出此异常。

I/O流与文件操作

  • 实验目的:
    1. 理解Java I/O流的分层体系(字节流 vs. 字符流,节点流 vs. 处理流)。
    2. 掌握使用File类进行文件和目录操作。
    3. 学会使用FileReader/FileWriterBufferedReader/BufferedWriter进行文本文件的读写。
    1. 文件信息查看: 编写一个程序,接收一个文件路径,使用File类输出该文件/目录的名称、大小、是否可读、是否可写、最后修改时间等信息。
    2. 文本文件复制: 编写一个程序,将一个文本文件(如source.txt复制到另一个文本文件(如target.txt)中。
    3. 日志记录: 创建一个简单的日志记录程序,每次运行时,将当前时间戳和一条日志信息(如“用户登录成功”)追加写入到一个log.txt文件中。

第四部分:综合项目实践

将所学知识融会贯通,完成一个小型但完整的应用。

简易图书管理系统

  • 项目目标: 开发一个控制台版的图书管理系统,实现对图书的增、删、改、查等基本功能。

  • 技术要求:

    • 使用面向对象思想设计。
    • 使用ArrayListHashMap来存储图书数据。
    • 使用Scanner类获取用户输入。
    • 使用I/O流实现数据的持久化(程序关闭后,图书信息不丢失)。
  • 功能模块:

    1. 图书类:
      • 属性:id (唯一标识), title (书名), author (作者), isBorrowed (是否借出)。
      • 方法:toString() (用于打印图书信息)。
    2. 图书管理器类:
      • 数据存储: 使用ArrayList<Book>
      • 核心功能方法:
        • addBook(Book book): 添加新书。
        • deleteBook(String id): 根据ID删除图书。
        • findBook(String keyword): 根据书名或作者查找图书。
        • borrowBook(String id): 借阅图书。
        • returnBook(String id): 归还图书。
        • listAllBooks(): 显示所有图书。
      • 数据持久化:
        • saveToFile(): 将图书列表保存到文件(如books.dat)。
        • loadFromFile(): 从文件加载图书列表。
    3. 主程序类:
      • 提供菜单驱动的用户界面。
      • 在程序启动时调用loadFromFile(),退出前调用saveToFile()
      • 根据用户选择调用管理器类的相应方法。

第五部分:实验报告撰写规范

每完成一个实验,都应提交一份实验报告,格式建议如下:

  1. 实验名称: 如“实验三:面向对象基础”。
  2. 实验目的: 简述本次实验要达成的目标。
  3. 实验环境: JDK版本、操作系统、IDE名称及版本。
  4. 实验原理: 简要介绍实验所涉及的核心理论知识。
  5. 与步骤:
    • 描述实验的具体任务。
    • 详细记录关键的实现步骤和遇到的问题及解决方案。
  6. 核心代码:

    贴出关键类或方法的核心代码,并进行必要的注释说明。

  7. 实验结果与分析:
    • 附上程序运行成功的截图。
    • 对实验结果进行分析,讨论代码的优缺点或可以改进的地方。
  8. 实验总结与心得:
    • 总结本次实验学到的知识和技能。
    • 反思在实验过程中遇到的困难、解决方法以及获得的感悟。
分享:
扫描分享到社交APP
上一篇
下一篇