第三周学习总结

教材学习内容总结

本周的学习内容数量之多,密度之大乃前所未有,故不像上周将所有知识点一一总结,仅将我所认为重要难懂的部分总结出来。

主要内容

面向对象语言

(1)封装性,继承性,多态性。

  类

(1)class是关键字用来定义class类名

(2)使用拉丁字母,那么名字的的首字母使用大写。

成员变量:

1)成员变量在整个类内都有效。

(2)局部变量只在方法内有效。

(3)局部变量与成员变量名字相同,成员变量被隐藏。

(4)局部变量没有默认值。

构造方法

(1)构造方法没有类型。

参数传值

1)方法中的参数变量的值是调用者指定的值的拷贝。

(2)向该参数传递的值的级别不可以高于该参数的级别。

实列成员与类成员

(1)用关键字static成为类变量,否则称作实例变量。

(2)实例变量占不同的内存空间,互不影响。类变量占相同的内存空间。

实例方法和类方法

(1)实例方法不会被分配入口地址,只有创建对象后,类的实例才会分配入口地址。类方法被加载到内存时就分配了入口地址。

方法重载

(1)参数的个数不同或参数的类型不同。

(2)注意避免出现的歧义

this关键字

(1)this是java中的一个关键字。可以出现在实例方法和构造方法中但不可以出现在类方法中。

(2)this关键字就代表正在调用该方法的当前对象。

(1)包是不同Java源文件中可能出现名字相同的类。区分这些类就需要包名。

(2)运行时,必须用java tom.jiafei.包名.主类名 来运行。

important语句

(1)用来引入另一个类声明的对象作为自己的成员或方法中的局部变量.

(2)可以引入库中的类。

访问权限

(1)用private修饰的成员变量为和方法为私有变量和私有方法,用public修饰的成员变量为和方法为共有变量和共有方法,用protected修饰的成员变量为和方法为受保护变量和受保护方法。

(2)如果不加public类,就称为友好类。

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

问题一:对this关键字在实例方法的的使用不太明白。

答案:1.在类中使用,表示类的实例对象2.串联构造函数。

参考博客链接          https://blog.csdn.net/u013826918/article/details/80711732

                                https://blog.csdn.net/u013826918/article/details/80711732

                                https://www.cnblogs.com/zheting/p/7751752.html

问题二:如图

 

 

 

 

我对C.getArea()与t。getArea()的意义不太懂,不了解他是什么意思,有什么作用。

答案:在参考博客之后我明白了这两句代码的意义。在创建方法的时候Circle c就相当于创建了一个Circle的对象,Tixing t也是一样,这两句话的意思可以等于Circle c=new circle;与Tixing t=new tixing一样。

之后的double area = c,getArea()便是一般的调用了。

问题三:

 如图:

 

 

答案:binarysearch为在指定数组中查找指定值得索引值,该值在范围内找得到则返回该值的索引值,找不到则返回该值的插入位置,如果该值大于指定范围最大值则返回-(maxlength+1)

式:

binarySearch(object[ ], object key);

如果key在数组中,则返回搜索值的索引;否则返回-1(key小于数组中的任意一个元素)或者”-“(插入点)。插入点是索引键将要插入数组的那一点,即第一个大于该键的元素索引。

key的值在数组范围内则索引从0开始计数;

key值不存在数组范围内(大于数组最小元素)则从1开始计数;

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

 问题一:

 

在调试过程中出现了只有if没有else的问题,已经将代码仔细看过确定有else,但在之后的改正当中发现在有/iuff1b的错误,于是将前面的引号改正,发现是引号的错误导致了电脑没有读取接下来的代码导致出现了没有else的错误提示。

问题2:在Example4_3当中出现结果与书上不符合的问题

问题2解决方案:仔细观察代码之后发现是对象给自己的变量赋值有无将sunwukong与zhubajie这两个对象赋值搞错了。

[代码托管]

上周考试错题总结

二进制移位运算符
2的二进制是10,>>代表右移,10右移1位是二进制的1,<<代表左移,10左移1位是二进制的100,也就是十进制的4。

-2二进制为11111110 -2>>>1为00011111

31的二进制为0000000000011111

2^31为0010000

减一为00011111

感悟

在这周的学习内容相对其他几周来说内容与难度大幅度增加,但是也给我提供了一个java的大框架。这周我主要的时间花在了看书上面,这周的内容偏难。有许许多多的我不理解的东西。C语言所不具备的东西在Java当中出现了。在这周我明白了java的逻辑与自由性,以及各种语法知识。通过书上的例题我学习到了许多东西,我但还是一些不理解其中的意思。随着学习的深入,我逐渐掌握了java语言的框架,但这一周的知识点实在是太多,我还需要很多时间去掌握它,自学java对我来说只能是记忆。理解还要靠之后的练习。

posted @ 2019-03-17 18:54  20175330杨璟旭  阅读(123)  评论(0编辑  收藏  举报