第4章类、对象和方法

第4章类、对象和方法
了解类的基础知识、了解如何创建类、理解如何给引用变量赋值、创建方法,返回值,并使用形参,使用return关键字、从方法返回值、向方法添加形参,使用构造函数,创建带形参的构造函数。
这一章也是比较基础的,主要收获搞清楚new运算符和引用,并学习了Java垃圾回收。

如何创建对象

下面这行代码声明了一个名为minivan的Vehicle类型的变量。

Vehicle minivan = new Vehicle();

该声明完成两个功能。首先,它声明一个名为minivan的Vehicle类型的变量。该变量有定义对象,它是一个可以引用对象的变量。其次声明创建了对象的一个实际的副本,并把对象的引用赋值给了minivan。new运算符为对象分配内存,并返回一个对它的引用。该引用有new分配的对象在内存中的地址。然后,把引用存储在变量中。因此,在Java中,必须动态分配所有的类对象。
把上面的代码拆开来写:

Vehicle minivan;
minivan = new Vehicle();

第一行把nimivan声明为Vehicle类型对象的引用。nimivan是一个可以引用对象的变量,但是它本身不是对象。因此,minivan不引用对象。
第二行创建了一个新的Vehicle对象,并把它的引用赋值给了minivan。
new运算符可以用于创建任何类类型的对象。new运算符返回对新创建对象的引用。

引用变量和赋值
Vehicle car1 = new Vehicle();
Vehicle car2 = car1;

car1和car2引用相同的对象。但是car1和car2是没有关系的。对car2的赋值只是改变了car2所引用的对象而已。

void方法的返回方式

void方法的返回方式有两种,到达右花括号或者执行return语句。
注意void方法中可以写这样的return语句的。

public static void display(){
        int i=3;
        if (i>=1){
            System.out.println(i);
            i--;
        }else return;
    }
垃圾回收

Java的垃圾回收机制会自动回收对象,透明的在后台操作。具体工作方式为:当不存在对某对象的引用时,该对象就被认定为没有存在的必要了,它所占用的内存就要被释放,被回收的内存可以用于以后的分配。
使用finalize()方法来演示垃圾回收和终止。
protected void finalize()
在对象最后被垃圾回收器销毁之前调用它。

public class FDemo {
    int x;
    FDemo(int i){
        x=i;
    }
    protected void finalize(){
        System.out.println("Finalizing "+x);
    }
    void generator(int i){
        FDemo o = new FDemo(i);
    }
}
public class Finalize {
    public static void main(String[] args){
        int count;
        FDemo ob = new FDemo(0);
        for (count=1;count<1000000;count++){
            ob.generator(count);
        }
    }
}

创建和销毁1000000个对象

发布了39 篇原创文章 · 获赞 31 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章