1.类创建对象的详细过程
创建完成,dog就成了一个实例(对象),具有属性和方法
Dog类的属性:一般叫做成员变量
Dog类的方法:一般叫做成员方法
类是对象的抽象,对象是类的具体实例。
2.JAVA的数据类型
3.JAVA对象的生命周期和垃圾自动回收机制
注意什么叫做垃圾,rect为空后,不能进行引用属性和方法,对象就成了垃圾,
此时不能引用否则会报空指针异常。
①也可以手动,把某个实例对象赋值为空,然后再用System.gc()人为干预清理垃圾,节省资源。
②一般自定义的类,全部都默认继承Object类,每一个自己定义的类都有finalize方法,每次释放都会执行,如果想要看到finalize的效果可以在类中重写,可用source菜单中的override重写,
如图
当不动手写System.gc时,主线程没有任何任务,整体也全部被回收(这个地方不够细致以后再补充)。
4.成员变量与局部变量
①作用域
成员变量:可以放在一个类的成员方法后面,和成员方法没有先后,都是先编译成员变量。
局部变量:就是方法范围,且顺序不能调,先声明后使用。
②初始值
成员变量:一创建对象就会赋初始值。
局部变量:如果没赋值,直接用是非法的
③隐藏
局部和成员重名时,局部变量会覆盖成员变量,如果要加以区分就用this
如图
test方法是在方法中新定义a的成员方法,但a已经是成员变量,
如果这时候在主方法中直接打印a则局部覆盖成员变量。
如果这时非要打印成员变量,就用this加以区分,this代表当前对象。
④赋值
对于成员变量来说,属性可以不赋值,那么创建对象时就是默认值,但是属性也可以赋值,那么一创建对象,就赋值完成了。
⑤分类
实例变量:用类创建的对象,对象拥有的属性就是该实例的变量,用 变量名.属性即可引用,一般创建实例的时候才会产生。
类变量:类中用static修饰的属性,可以用类.属性应用,也可用变量名.属性引用,所有该类的变量都可引用该变量,一般在类生成字节码的时候就会定义赋值,比实例要早,在静态方法中可以直接使用静态变量,去掉属性前面的引用,而实例变量必须用变量名.属性引用。
5.构造方法
6.成员方法
注意两点:返回值也可以是对象,传入参数也可以是对象,是一种地址传递。
以上是对于不定长参数的定义方法,一个是单一不定长,一个是最后一个参数是不定长参数,相当于传进去一个数组。
具体使用如下
3,4都给了多参数变量,最后的数组也是给了多参数变量,熟悉这种用法,不定长参数不能放到最后。
7.成员方法的值传递和引用传递
8.方法的重载
9.(静态)类方法和实例方法的区别
静态方法和变量优先分配空间,实例方法和变量因此可以调用他们,反过来则不行。
10.关于static的用法
静态成员使用注意事项
注意分配空间时间是不同的。
注意类字节码一有类就会加载,但是实例的方法和变量,只有创建时才会出现。
11.对象的组合关系
就是一个类中去定义另一个类作为了成员变量。