自己颓废了好久,加上mooc网站的视频还出问题看不了,所以估计得有一个月半个月没看了。当初说好的敲1w行代码就买机械键盘,结果才几千就趁着便宜入手了。
总而言之,长点心吧。
1 java中有包这个概念,包也就是Package的级别低于project但是高于class。一般java储存文件,也是每个project一个文件夹,然后下面分别是不同的package,再下面才是每个package里对应的.java文件。
——包的名字可以带有",”,就像之前为了使用scanner而调用的java.util.Scanner。这种点反应的是文件夹层级关系。
2
import display.*;
以上代码用于调用display这个包里所有的,比如函数比如内部变量之类的。但是不推荐用,因为可能有重名之类的冲突。
3 类变量
在定义类的时候加上修饰语static,称之为类变量。只有这种类变量才能使用“类名.类变量名”来访问和使用。
当使用这个类new对象的时候,这些对象可以使用“对象名.类变量名”访问类变量,但是它们并没有自己的类变量,它们访问的都是类的类变量。
——类似的,加上static的函数只能调用其他static函数和static的成员变量。这种函数叫类函数。
——类函数甚至可以只用变量名调用,而不用加上类名
——类函数和类变量属于类,而不属于任何一个对象。
====================================================
对象的第三周:
容器的提出
数组虽然能保存很多相同类型的数据,但是要使用数组就要预先给出数量,使用不够灵活。容器作为另外一种对象就要灵活的多。
4 容器之一 ArrayList
使用方法
ArrayList<String> notes = new ArrayList<String>();
<>内表示保存你的数据类型。这种称为范型类,是一种容器。
——定义容器类需要两个类型,一个是ArrayList对应的容器类型,一个是String对应的元素类型
——ArrayList有几个方法:add()表示插入,既可以顺序插入,也可以给出index定位插入。size() 获得ArrayList元素个数。get()按index获取元素。indexOf() 根据元素内容获得index。remove() 按index删除元素
【同一个类中可以有两个同名函数,但这两个函数参数不能一样】
get()不能超过脚标,但是会返回null
remove()超过脚标会自动抛出异常,不用返回
5 在class里的main函数调试class内部函数时,必须先new一个相应的对象出来。
6 字符串是数组管理者,管理字符数组;而字符串数组 数组里都是管理者。所以正常数组不赋值的话,调值返回的是0。而字符串数组返回的是null
7 用for-each方法遍历数组。
Value[] a = new Value[10];
for(Value k:a)
对于普通数组,foreach的遍历是构建一个数组元素的复制体,所以在foreach中修改是影响不到原来的数组。但是对于对象数组,由于数组元素是对象管理者,所以修改复制品也能影响对象元素
8 HashSet也是一种容器,使用方法类似ArrayList。区别是HashSet是数学意义的集合,会自动消去重复元素,元素之间也没有顺序。
9 任何一个java的class 都可以用返回类型为String类型的 toString函数来使这个类能直接被println输出。而且也只有这样才行,public 返回类型 和函数名字都必须是这样
public String toString(int i){