Java课程总结
前言
本篇博客主要针对第三阶段的java学习情况的汇报以及整个课程学习的总结。
作业过程总结
- 知识迭代关系
第七次作业对面向对象的综合考察,第八次和第九次则主要考察正则表达式的书写。
- 问题及解决办法
-
第七次作业
-
7-1雨刷程序功能扩展
问题:部分正确
解决办法:由于我把输入分了几部分,导致输入部分踩坑。在Main类中定义一个静态Scanner对象,这样在其他类中如果想要使用该对象进行输入,则直接使用
Main.input.next...即可(避免踩坑)。
-
-
第八次作业
-
7-1统计Java程序中关键词的出现次数
问题:测试点9(正常测试)答案错误
分析:个人认为题目数据可能有点问题(也有可能是题目要求给错了)。抛开题目来讲,对Java中的53个关键词我的了解程度并没有达到要求,平时的实验也经常会在关键词的用法上出错。
-
-
第九次作业
-
7-1表达式求值
问题:含有0开头数据的测试点错误
解决办法:一开始我的理解是含有0开头的数据是输出
Wrong Format,后来发现我理解错了,含有0开头的数据是允许的,只需要正常运算即可。
-
-
时间比例
第七次:3h 第八次:12h 第九次:6h
时间比例:1:4:2
-
认识及教训
整体来说,这三次作业主要是对正则的考察,而难点也就在正则的书写说,正则的内容确实是一个难啃的骨头(可以单独出本书...),我在正则的书写上也花费了很多时间,在之前学习 python爬虫的时候有接触过正则,那个时候还没有发现正则的魅力,现在已经被彻底洗礼了。
实验过程总结
Java实验一共有五次,实验相对pta作业来说简单一点,但暴露的问题更多,对一些知识掌握不牢的话在实验过程中会轻易的暴露出来,下面主要讲一下实验三和实验四,这两次我暴露出来的问题也是很多的。
-
实验三
本次实验,我了解了Java语言中继承的基本概念及使用方法、成员变量隐藏的基本概念及使用方法和super关键字的使用方法;掌握了Java语言中多态的基本概念及使用方法、Object类中的toString()、equals()的使用方法以及instanceOf运算符的使用方法。其中也遇到了一些困难,例如instanceOf运算符的使用方法掌握不清楚,后来通过百度查阅资料才掌握清楚了。继承和多态的使用是Java面向对象中非常重要的一个方法,能大大提高代码的复用性。
-
实验四
- 类与接口的区别:
- 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
- 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
- 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
- 一个类只能继承一个抽象类,而一个类却可以实现多个接口。
- 本次实验,我掌握了Java语言中final关键字的含义及使用方法、Java语言中接口的基本概念及使用方法和Java语言中List、Map相关类的使用方法;了解到了程序设计中异常处理的重要性和Java语言中抽象类的基本概念及使用方法。其中也遇到了不少困难,比如坐标排序的地方在交换坐标时遇到了问题,后来查阅资料之后解决了这个问题,是由于对象与对象之间不能直接赋值。
Java课程总结
本学期的Java学习马上就要结束了,整个学期下来,感受到了Java在编程语言的地位之重,用处之广;也感受到了Java面向对象编程的"魅力"。对于物联网工程专业的学生我来说,之后接触Java的机会还是有的,但蔡老师的课好像没了(有点不舍,老师讲话的声音好好听啊!😄😄😄)。下面我总结一下这学期Java学习过程中出现的问题。
- "=="的用法
“==”比较两个变量本身的值,即两个对象在内存中的首地址。(java中,对象的首地址是它在内存中存放的起始地址,它后面的地址是用来存放它所包含的各个属性的地址,所以内存中会用多个内存块来存放对象的各个参数,而通过这个首地址就可以找到该对象,进而可以找到该对象的各个属性)。
常见的错误用法:
String name;
while(name!="#")
{
...
}
- equals()
equals方法对于字符串来说是比较内容的,而对于非字符串来说是比较,其指向的对象是否相同的。
上面代码的正确用法:
String name;
while(!name.equals("#"))
{
...
}
equals的注意事项:
比较的对象可以为空,但主体不能为空,否则程序会报错,如下:
public static void main(String[] args) {
String s;
s=null;
if(s.equals("a"))
System.out.println(s);
}
报错内容为:Null pointer access: The variable s can only be null at this location(空指针访问:变量s在此位置只能为空 )。
- java保留两位小数4种方法
- 方法一
//String的format方法(推荐)
double f = 111231.5585;
System.out.println(String.format("%.2f", f));
- 方法二
//DecimalFormat的format方法
double f = 111231.5585;
DecimalFormat df = new DecimalFormat("#.00");
System.out.println(df.format(f));
- 方法三
//NumberFormat的setMaximumFractionDigits方法
double f = 111231.5585;
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
System.out.println(nf.format(f));
- 方法四
//NumberFormat的setMaximumFractionDigits方法
double f = 111231.5585;
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
System.out.println(nf.format(f));
- map的三种输出方式
import java.util.*;
import java.util.Map.Entry;
class student{
String ID;
String name;
int age;
public student(String ID, String name, int age) {
super();
this.ID = ID;
this.name = name;
this.age = age;
}
public String toString(){
return "student [ID:"+ID+", name:"+name+", age:"+age+"]";
}
}
public class main3 {
public static void main(String[] args) {
Map<String, student> map = new HashMap<String, student>();
student stu1 = new student("001","abc",20);
student stu2 = new student("002","def",22);
student stu3 = new student("003","hhh",21);
student stu4 = new student("004","abd",22);
map.put(stu1.ID, stu1);
map.put(stu2.ID, stu2);
map.put(stu3.ID, stu3);
map.put(stu4.ID, stu4);
//1输出
System.out.println("-----------111------------");
Set<String> keySet = map.keySet();
Iterator<String> it1 = keySet.iterator();
while(it1.hasNext()){
String ID = it1.next();
student stu = map.get(ID);
System.out.println(ID+" "+stu.toString());
}
System.out.println("-------------222------------");
Set<Entry<String,student>> entrySet = map.entrySet();
Iterator<Entry<String, student>> it2 = entrySet.iterator();
while(it2.hasNext()){
Entry<String, student> entry = it2.next();
String ID = entry.getKey();
student stu = entry.getValue();
System.out.println(ID+" "+stu);
}
System.out.println("-------------333------------");
Collection<student> c = map.values();
Iterator<student> it3 = c.iterator();
while(it3.hasNext()){
student stu = it3.next();
System.out.println(stu);
}
}
}
结尾
结束了,结束了,雷霆嘎巴,无情哈拉少!!!
浙公网安备 33010602011771号