集美大学 计算机 郑如滨

教学博客

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

Java第02次实验提纲(Java基本语法与类库)

实验目标

  1. 加入Gitee高校版,并将IDEA的项目与远程仓库关联
  2. 进一步熟悉Scanner的使用。
  3. 熟练掌握IDE常用快捷键
  4. 掌握常用类(String、Integer、StringBuilder等)及JDK文档的基本使用
  5. 掌握数组与ArrayList

试验任务书及相关材料
Java第2次实验文件.zip

1. 使用Git管理你的代码

实验目标

  • 学会Git管理代码的基本概念
  • 将IDEA中的项目与远程仓库相关联

实验前准备

  1. 阅读推荐阅读-拓展阅读:促进团队合作的代码管理之Git学会一些关于git的基本概念(如,工作区、暂存区、本地仓库、远程仓库、add、commit、push、pull)。掌握了基本概念,在后续的实验步骤中才不会知其然不知其所以然。

  2. 阅读 https://gitee.com/cyber-security-25/2025001learnjava 仓库中的文档实验1:Gitee 高校版远程仓库创建与 IDEA 项目关联.md完成实验。

实验步骤

  • 根据老师提供的链接或者二维码加入团队,然后修改昵称为姓名。
  • 进入https://gitee.com/cyber-security-25创建自己的远程仓库
  • 在IDEA中新建Java项目
  • 在 IDEA 中初始化 Git 本地仓库
  • 创建初始 Java 代码文件(如,Main.java)添加(add)并提交(commit)到本地仓库。
  • 将 IDEA 项目与 Gitee 远程仓库关联。
  • 将项目中的Java代码文件推送(push)到远程仓库
  • 在远程仓库网页端修改Main.java,然后提交。
  • 在IDEA中将远程仓库的有修改的文件拉取(pull)下来。
  • 在IDEA中按章节创建几个module,然后添加一些 Java 代码文件,尝试提交并推送(Commit And Push)
  • 可选:fork老师提供的代码库项目。

重要提示:
使用Git来管理你的代码以后,当你在本地项目中开始编写新的代码之前,一定首先要将远程仓库的最新代码pull到本地仓库,这可以降低冲突发生的可能。

参考链接:

0.推荐阅读-拓展阅读:促进团队合作的代码管理之Git
1.意义-现代软件工程讲义 源代码管理(为什么要用源代码管理)
2.教程-Git与码云(gitee)入门-如何在实验室和宿舍同步你的代码(1)
3.Gitee帮助
4.教程-猴子都能懂得Git入门
5.gitee高校版

2. PTA:题集jmu-Java-02-Java基本语法

本节参考资料:

IntelliJ IDEA的基本使用

PTA提交说明

  1. 代码首行的package要去掉。
  2. public class的类名称一定要是Main。
  3. 快速测试方法:将样例输入复制到记事本(命令行使用notepad打开),并在最后一行回车换行,然后全选复制(Ctrl+a,Ctrl+c),粘贴到控制台即可测试。

2.1 综合小测验(重点讲)

对于控制台输入的处理,nextLine()方法与其他nextXXX方法混用会产生吞回车问题。建议全部使用Scanner.nextLine()处理输入以免碰到行尾回车换行问题。
主讲:

  • IDEA代码模板:尝试使用sout、fori、iter、while。快捷键:Alt + Enter(快速修复),Ctrl+F12(查看文件结构)`、
  • 使用IDE快速创建代码框架(可利用IDE的"重构-extract"功能针对代码块抽取方法)。
  • Eclipse代码片段快捷键Alt+/,如switch、for、while、sysout、main。
  • 使用Eclipse快速创建程序框架(利用Eclipse的quick fix功能快速创建方法)。
  • 不要重复创建Scanner对象。
  • String.split("\\s+")的用法。

其他:缩进, Tab、Shift+Tab。运行, Shift+F10(IDEA),Ctrl+F11(Eclipse)。
注意:

  • 如果JDK为1.6版本(最新版PTA已支持1.8),switch不支持字符串。需先将字将String转化为int(早期的PTA 中使用的Open JDK6)

2.2 身份证排序(略讲)

  • 主要讲:sort1可直接使用Arrays.sort,String的subString。
  • 采用结构化编程方式,针对sort1、sort2各写一个方法处理。
  • 其他:nextInt()与nextLine()混用可能产生的后果。建议:全部使用Scanner的nextLine()处理输入以免碰到行尾回车换行问题。

2.3 StringBuilder(自行完成)

使用+进行字符串拼接的弊端

2.4 动态数组(自行完成)

动态生成不规则大小的数组。定义数组时数组第一维需事先确定大小,第二维大小可在程序运行中动态确定。

2.5 ArrayList入门(讲)

2.5.1 略讲:ArrayList的常用方法add(e)、add(index, e)等
使用ArrayList可以代替数组,见如下代码,ArrayList用法请参考JDK文档。

import java.util.ArrayList;
import java.util.List;

public class ArrayListDemo {

    public static void main(String[] args) {
        // 泛型,Integer
        List<Integer> integerList = new ArrayList<>();
        integerList.add(1);
        integerList.add(new Integer(1));// 和上句效果一样。但有删除线,怎么去掉?
        // 1.底下这个for循环输出什么?
        for (Integer e : integerList) { // 使用foreach循环遍历ArrayList
            System.out.println(e+" ");
        }
        System.out.println();

        // 泛型,String 
        List<String> strList = new ArrayList<String>();
        strList.add(3+"");
        strList.add("abc");
        strList.add(1, "def");
        strList.set(0, "def");//随机存取,设置0号位置的元素
        // 2.底下这个for循环输出什么?
        for (int i = 0; i < strList.size(); i++) { // 使用size()而不是length获取ArrayList中元素个数
            System.out.print(strList.get(i)+" ");
        }
        System.out.println();
    }
}

2.5.2 使用重构快速将代码片段抽取为方法
编程过程中常需使用某些代码片段来进行测试。如上述代码中,常需遍历数组列表。
可将鼠标框选如下代码,右键点击,在Refactor下选择Extract Method,将其抽取为方法。

for (int i = 0; i < strList.size(); i++) { 
     System.out.print(strList.get(i)+" ");
}
System.out.println();

2.6 浮点数的精确运算(略讲)

浮点数不精确,使用BigDecimal解决。

  • BigDecimal对象的构造(以字符串的方式构造)
  • 熟悉以面向对象的方式进行各种操作(加减乘除)。
  • BigDecimal的不可变性,如何体现?

3. 加分题

实验任务书中的题目2(Math类应用)
特别加分:6(一个实用的身份证信息查询程序)、8(作业随机分配)

下次实验

第03次实验:面向对象

posted on 2017-03-07 23:37  zhrb  阅读(1890)  评论(0)    收藏  举报