集美大学 计算机 郑如滨

教学博客

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

实验目标

  1. 掌握Git的基本概念与基本操作。
  2. 进一步熟悉Scanner的使用。
  3. 熟练掌握IDEA与Eclipse常用快捷键
  4. 掌握常用类(String、Integer、StringBuilder等)及JDK文档的基本使用
  5. 掌握数组与ArrayList

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

1. 熟悉Git(可选)

目标

  • 使用Git管理自己的Java课程学习代码
  • 学会使用git进行源代码管理
  • 学会使用命令行操作git

1.1 使用网页版的操作代码仓库

  • 申请账号、登录并创建自己的仓库(远程)并规划好目录结构(比如按章节分,用英文)
  • 通过网页版将文件提交到远程仓库中,并查看
  • 使用命令行配置、将远程仓库克隆本地仓库、提交代码
  • 在远程仓库修改或新建文件,通过命令行将远程仓库的变动拉到本地仓库
  • 可选:根据老师提供的链接或者二维码加入团队,然后修改昵称。
  • fork老师提供的代码库项目。

参考链接:

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

1.3 使用Git克隆(clone)项目到你的Eclipse项目中(可选)

见以下参考资料"使用Eclipse Egit与码云管理你的代码"中的4 从码云将项目clone到你的电脑

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

参考资料:

使用Eclipse Egit与码云管理你的代码

2. PTA

题集jmu-Java-02-Java基本语法。
本节参考资料:

IntelliJ IDEA的基本使用

PTA提交说明

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

2.1 综合小测验(重点讲)

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

  • IDEA代码片段:尝试使用sout、fori、iter、while、ctrl+F12(查看文件结构)
  • 使用IDEA快速创建程序框架(利用IDEA的extract功能快速创建方法)。
  • Eclipse代码片段快捷键Alt+\,如switch、for、while、sysout、main
  • 使用Eclipse快速创建程序框架(利用Eclipse的quick fix功能快速创建方法)。
  • 不要重复创建Scanner对象。

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

  • 如果JDK为1.6版本(最新版PTA已支持1.8),switch不支持字符串。需先将字将String转化为int(早期的PTA 中使用的open jdk6)
  • 使用IDEA的extract功能快速创建函数int choice2Int(String choice)
  • 使用Eclipse的quick fix功能快速创建函数int choice2Int(String choice)

2.2 身份证排序(略讲)

  • 主要讲:sort1可直接使用Arrays.sort,String的subString
  • 采用结构化编程方式,针对sort1sort2各写一个方法处理。
  • 其他: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  阅读(1683)  评论(0编辑  收藏  举报