20165220 Java第三周学习总结

1.教材学习内容总结

类与对象

  • 类与对象的关系:要产生对象必须先定义类,类是对象的设计图,对象是类的实例
  • 为个别对象的数据成员指定值的方式是:对象.对象成员
  • 注意“一类一文件”
  • 类在定义时要使用关键词class,而具体对象就是对应java在堆内存中用new建立的实体

标准类

  • java.util.Scanner类:接收用户的输入,比System.in.read()方法更方便,如果想取得用户输入的整行文字,则使用nextLine()。
  • java.math.BigDecimal类:Java遵守IEEE754浮点数运算规范,使用分数与指数来表示浮点数,这样就导致无法精确的进行运算,从而造成运算上的误差,比如1.0-0.8的结果就不是0.2。

    0.5会使用1/2来表示,0.75会使用1/2+1/4来表示,而0.1会使用1/16+1/32+1/256+1/512+1/4096+。。。无限循环下去,无法精确表示。

    所以java.math.BigDecimal类就可以解决这类问题。

  • 在基本类型中,=是将值复制给变量,而==是比较两个变量储存的值是否相同。但是,如果是在操作对象时,=是用在指定参考名称参考某个对象,而==是用在比较两个参考名称是否参考同一对象,换句话说也就是=是用在将某个名牌绑到某个对象,而==是用在比较两个名牌是否绑到同一对象。
  • equals是逻辑上相等,比较两个BigDecimal实质上是否相同,需要注意的是与==的区别。

2.教材学习中的问题和解决过程

Q:看到组合还是有很多不理解的地方

A:多看书多联系

Q:this关键字是如何使用的?

A:this是用来表示某个对象的。当它出现在类的构造方法中时,它代表着该构造方法所创建的对象;当它出现在实例方法中时,表示正在调用该方法的当前对象,this.方法;

3.代码调试中的问题和解决过程

Q:执行命令javac -d bin src/week3/Example4_5.java时出现找不到符号的提示 试了好多次也不行。

A:我首先分析了原因,这应该是需要多个文件共同编译导致的。随后我查阅资料并询问同学,找到了一种办法,就是将相关的文件加以相同的前缀,然后统一编译、运行。就比如E9_1 E9_2 E9_3,然后用命令javac E9*.java来进行编译运行。虽然使得类名没意义,但是能解决问题。可以在此基础上再寻求更好的解决方案。

4.代码托管

5.错题总结

因为题目还没有开始做,稍后做完了再来总结下

6.感悟

这周的内容比前两周明显多了不少,而且是过去没有接触过的新知识和新概念,理解起来需要一定的时间,编写代码也要一步一步地努力提高。我对这些新知识现在还掌握得不够熟练,希望多花时间敲代码后能够熟练应用。

原文地址:https://www.cnblogs.com/brs6666/p/8593843.html