ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

二周小结!

二周小结!

Java 学习周记 · 第二周

这周学了什么

流程控制收了个尾,然后一路走数组、方法,最后进了面向对象。

进度是跟上了,但没学明白。数组、方法、封装、重载这几块在脑子里搅成一团,单拎一个词出来能说两句,真让我从头写一段就卡住。感觉是脑子从上面滑过去了,看的时候都懂,合上书什么都不剩。

打算回头再看几遍,可一直在赶进度,抽不出整块时间。

数组

印象最深的是内存图。两个数组变量赋值,复制的其实是地址不是内容,所以改一个另一个也跟着变。这个我一遍就看懂了。

数组有多长,用arr.length看。写的时候后面不加括号,我一开始习惯性加了括号,直接报错。

初始化分静态和动态两种。动态那种只给长度,值由 JVM 自己填,填什么有固定规则。这块课里讲过,我有印象,但没真理解。

遍历就是 for 循环配arr.length,比 C 里自己算长度省事。

做过一道题:随机生成 10 个数放进数组,求和、求平均,再统计有几个比平均数小。前两步顺,第三步卡了,因为得先算出平均才能回头比,我一开始想在同一个循环里做完。

方法

方法和 C 的函数长得差不多,只是前面多了几个修饰符。

修饰符这块我卡了很久。public static void main和public void有什么区别,一开始完全分不清。后来才想明白void不是修饰符,它占的是返回值的位置,写void就是没有返回值。

格式上参数写在括号里,要交结果就用return。比如public static int getSum(int a, int b),最后return一个 int 回去。

重载不行。定义我能背下来,同一个类里同名方法、参数不同,但做题就绕进去,五道判断题错得不少。错的地方都一个样,光改返回值不算重载这条,我老是记不住。

return和break以前混着用,现在知道return是整个方法结束,break只跳出一层循环或者switch。

面向对象

类就是自己在代码里造一个类型出来,学生、手机这种。new一个就是对象,变量里存的还是地址,跟数组那套一个道理。

封装是把成员变量用private藏起来,外面通过get/set拿。this用来分清成员变量和参数,去掉就变成自己给自己赋值,编译器一声不响,值根本没进去。

封装和重载这两个词,单看都认识,搁一块儿就说不清谁是谁。

顺手记的几条区别

CJava
函数可以单独存在什么都得写在类里
sizeof求数组长度arr.length是属性

switch 也有差别。Java 里可以写case 1, 2, 3:一次列几个值,C 只能一个 case 一个 case 往下穿。

第一周我写"Java 的 if 能直接根据变量判断、C 不行",其实说反了。Java 的 if 条件必须是 boolean,if (1)编译不过;C 里随便一个非零数都算真。


)

下周

下周预计把 this 的内存原理搞懂,然后开始学 API。

this 我现在只会照着写,原理没想明白。

返回列表