针对HIT软件构造Lab1常见问题的回答

0. 综述

  由于HIT的Java为选修课,因此许多同学对于本次实验难以上手。于是写下这篇博客针对近期许多同学的常见问题进行统一的回答,并在文末附上本博客参考的学习资料,如果希望系统地学习一下Git和Java的话可以参考一下。
  如果本文中存在任何错误,请联系我进行修改,或直接在评论中指出,我看见后会第一时间修正的。

1. 简明Git教程(我该如何push我的实验?)

Git使用总共分为3个过程:

  • 建立本地仓库和远程仓库的连接
  • 提交至本地仓库
  • 提交至远程仓库

注释1:本文仅介绍本次实验需要用到的内容。更多内容,例如如何使用pull、分支应用、版本回退等,本文均不介绍。
注释2:本文提到的使用命令均是在Git Bash中输入的命令行。

1.1建立本地仓库和远程仓库的连接

  本文介绍两种连接方式,个人更倾向于基于ssh协议的方法。毕竟把自己的帐号密码明文写在一个文本里总是让人觉得怪怪的。

1.1.1基于http/https协议
  1. 创建一个空文件夹Lab1_你的学号
  2. 使用命令[ git clone 线上仓库地址 ]
    在这里插入图片描述
线上仓库地址的获取方式
  1. 修改.git下的config文件 (.git默认是隐藏文件夹)
    在这里插入图片描述
1.1.2基于ssh协议
  1. 使用命令[ ssh-keygen -t rsa -C “注册邮箱” ]
    1.1 然后连续按两下回车即可(不修改存储路径以及密码)
    1.2 在C:\Users\你的用户名\.ssh下的id_rsa.pub中找到自己的公钥
  2. 将公钥上传到自己的Github帐号
    2.1 在Github中点击自己的头像
    2.2 选择settings
    2.3 左侧选择SSH and GPG keys
    2.4 选中右上角的new SSH keys
    2.5 把id_rsa.pub中的内容用ctrl+A选中,然后ctrl+C复制,然后ctrl+V粘贴进去即可
  3. 在创建的空文件夹下使用命令[ git clone 线上仓库地址 ]
    在这里插入图片描述
记得先切换成SSH

1.2提交至本地仓库

  1. Lab1_你的学号文件夹下使用命令[ git add . ]
  2. 使用命令[ git commit -m “注释”]或者[ git commit ]

1.3提交至远程仓库

  1. 使用命令[ git push ]
  2. 大功告成~

2. Java文件目录结构概述(我该如何导入P2?)

  1. 下载P2这个项目
  2. 在你自己的项目的src文件夹中建立P2文件夹
  3. 把P2项目中的rules和turtle文件夹复制粘贴到刚刚建立的P2文件夹中
  4. 在Eclipse左侧右击你的项目名称,点击Refresh
  5. 调整turtle和rules中的全部java文件的文件目录结构
    5.1 以TurtleSoup.java文件为例,你需要把顶部的package turtle;修改为package P2.turtle;,然后把import turtle.PenColor;修改为import P2.turtle.PenColor;
    5.2 其它java文件同理进行修改。

拓展:为什么要进行这样的修改?(选读)

  1. 在Eclipse中,把src所在的文件夹作为根目录,所有的相对路径寻址都是从src所在的文件夹开始的。(在本次实验中,这个文件夹是Lab1_你的学号)
  2. package …即表示把这个java放在哪一个包里,package P2.turtle表示把这个java文件放在P2.turtle包中,而每个包对应于一个目录结构,即此时的这个java文件应该在P2/turtle中存放。
  3. 同理,package P1.P2.P3.P4.ABC表示把这个java文件放在P1/P2/P3/P4/ABC中。
  4. 错误的包名 / 文件目录结构会导致编译器无法正确地找到对应的java文件,原因是显然的。
  5. 原本的P2是作为项目存在的,编译器可以直接在turtle文件夹中找到TurtleSoup.java,而在导入至你的项目后,编译器找不到turtle文件夹,事实上,你必须告诉编译器,先去P2文件夹,再去找turtle文件夹,再去找TurtleSoup文件。
  6. 对于import的修改是同理。只是package告诉编译器把我放在哪,而import告诉编译器去哪里找我要找的“人”。
  7. 事实上,Lab1_学号/P2/turtle这个路径是不存在的,此时Eclipse会自动进入Lab1_学号/src/P2/turtle中查找。这个src可以替换成该项目中的任意一个源文件夹。

3. 在Lab1中可能用到的类、方法和机制(我该如何处理异常?)

文件的读写:Scanner、PrintWriter
数字的读入:ArrayList、String的split方法、Integer的valueOf方法、try-catch(异常捕获)
其它可能有用的数据结构(接口):Collection、Queue
我该如何使用这些类和方法?

4. 参考的学习资料

Git:Git零基础入门到实战详解
Java:《Java核心技术 卷I》

这两个资料的内容都不是很多,建议各位同学有时间的话还是能自己去系统地学习一下的。

补充:我该在lib文件夹中放哪些文件?

  1. 事实上只要你没有引用第三方的包的话,只要放你下载的JUnit的那两个.jar文件即可。(如果你的IDE自带JUnit,就把IDE里存放的JUnit对应的.jar文件复制粘贴到lib文件夹中即可)
  2. 如何判断是否为第三方包?其实只要看这个包是不是java开头的就行了。
  3. 为什么标准库的包不需要放进lib?因为标准库其实是jre的一部分,jre即Java Runtime Environment,如果一个人的电脑连jre都没装,那他的电脑无论如何是跑不起一个java程序的。
发布了1 篇原创文章 · 获赞 1 · 访问量 226

猜你喜欢

转载自blog.csdn.net/qq_42747131/article/details/104771505