Java课程总结

前言

  本篇博客主要针对第三阶段的java学习情况的汇报以及整个课程学习的总结。

作业过程总结

  1. 知识迭代关系

第七次作业对面向对象的综合考察,第八次和第九次则主要考察正则表达式的书写。

  1. 问题及解决办法
  • 第七次作业

    • 7-1雨刷程序功能扩展

      问题:部分正确

      解决办法:由于我把输入分了几部分,导致输入部分踩坑。在Main类中定义一个静态Scanner对象,这样在其他类中如果想要使用该对象进行输入,则直接使用Main.input.next...即可(避免踩坑)。

  • 第八次作业

    • 7-1统计Java程序中关键词的出现次数

      问题:测试点9(正常测试)答案错误

      分析:个人认为题目数据可能有点问题(也有可能是题目要求给错了)。抛开题目来讲,对Java中的53个关键词我的了解程度并没有达到要求,平时的实验也经常会在关键词的用法上出错。

  • 第九次作业

    • 7-1表达式求值

      问题:含有0开头数据的测试点错误

      解决办法:一开始我的理解是含有0开头的数据是输出Wrong Format,后来发现我理解错了,含有0开头的数据是允许的,只需要正常运算即可。

  1. 时间比例

    第七次:3h 第八次:12h 第九次:6h

    时间比例:1:4:2

  2. 认识及教训

  整体来说,这三次作业主要是对正则的考察,而难点也就在正则的书写说,正则的内容确实是一个难啃的骨头(可以单独出本书...),我在正则的书写上也花费了很多时间,在之前学习 python爬虫的时候有接触过正则,那个时候还没有发现正则的魅力,现在已经被彻底洗礼了。

实验过程总结

  Java实验一共有五次,实验相对pta作业来说简单一点,但暴露的问题更多,对一些知识掌握不牢的话在实验过程中会轻易的暴露出来,下面主要讲一下实验三和实验四,这两次我暴露出来的问题也是很多的。

  • 实验三

    本次实验,我了解了Java语言中继承的基本概念及使用方法、成员变量隐藏的基本概念及使用方法和super关键字的使用方法;掌握了Java语言中多态的基本概念及使用方法、Object类中的toString()、equals()的使用方法以及instanceOf运算符的使用方法。其中也遇到了一些困难,例如instanceOf运算符的使用方法掌握不清楚,后来通过百度查阅资料才掌握清楚了。继承和多态的使用是Java面向对象中非常重要的一个方法,能大大提高代码的复用性。

  • 实验四

    • 类与接口的区别:
    1. 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
    2. 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
    3. 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
    4. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。
    • 本次实验,我掌握了Java语言中final关键字的含义及使用方法、Java语言中接口的基本概念及使用方法和Java语言中List、Map相关类的使用方法;了解到了程序设计中异常处理的重要性和Java语言中抽象类的基本概念及使用方法。其中也遇到了不少困难,比如坐标排序的地方在交换坐标时遇到了问题,后来查阅资料之后解决了这个问题,是由于对象与对象之间不能直接赋值。

Java课程总结

  本学期的Java学习马上就要结束了,整个学期下来,感受到了Java在编程语言的地位之重,用处之广;也感受到了Java面向对象编程的"魅力"。对于物联网工程专业的学生我来说,之后接触Java的机会还是有的,但蔡老师的课好像没了(有点不舍,老师讲话的声音好好听啊!😄😄😄)。下面我总结一下这学期Java学习过程中出现的问题。

  1. "=="的用法

“==”比较两个变量本身的值,即两个对象在内存中的首地址。(java中,对象的首地址是它在内存中存放的起始地址,它后面的地址是用来存放它所包含的各个属性的地址,所以内存中会用多个内存块来存放对象的各个参数,而通过这个首地址就可以找到该对象,进而可以找到该对象的各个属性)。

常见的错误用法:

String name;
while(name!="#")
{
    ...
}
  1. 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在此位置只能为空 )。

  1. 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));
  1. 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);
		}
	}
}

结尾

  结束了,结束了,雷霆嘎巴,无情哈拉少!!!

posted @ 2020-06-06 23:17  锤子兄弟  阅读(239)  评论(1)    收藏  举报