Java构造方法与析构方法实例剖析

Wesley13
• 阅读 726

Java构造方法

类有一个特殊的成员方法叫作构造方法,它的作用是创建对象并初始化成员变量。在创建对象时,会自动调用类的构造方法。

构造方法定义规则:Java 中的构造方法必须与该类具有相同的名字,并且没有方法的返回类型(包括没有void)。另外,构造方法一般都应用 public 类型来说明,这样才能在程序任意的位置创建类的实例--对象。

示例:下面是一个 Rectangle 类的构造方法,它带有两个参数,分别表示矩形的长和宽:

1 public class Rectangle {
2     public Rectangle(int w, int h) {
3         width = w;
4         height = h;
5     }
6     public Rectangle() {}
7 }

每个类至少有一个构造方法。如果不写一个构造方法,Java 编程语言将提供一个默认的,该构造方法没有参数,而且方法体为空。如果一个类中已经定义了构造方法则系统不再提供默认的构造方法。

Java析构方法

当垃圾回收器将要释放无用对象的内存时,先调用该对象的finalize()方法。如果在程序终止前垃圾回收器始终没有执行垃圾回收操作,那么垃圾回收器将始终不会调用无用对象的finalize()方法。在Java的Object基类中提供了protected类型的finalize()方法,因此任何Java类都可以覆盖finalize()方法,通常,在析构方法中进行释放对象占用的相关资源的操作。

Java 虚拟机的垃圾回收操作对程序完全是透明的,因此程序无法预料某个无用对象的finalize()方法何时被调用。如果一个程序只占用少量内存,没有造成严重的内存需求,垃圾回收器可能没有释放那些无用对象占用的内存,因此这些对象的finalize()方法还没有被调用,程序就终止了。

程序即使显式调用System.gc()或Runtime.gc()方法,也不能保证垃圾回收操作一定执行,也就不能保证对象的finalize()方法一定被调用。

当垃圾回收器在执行finalize()方法的时候,如果出现了异常,垃圾回收器不会报告异常,程序继续正常运行。

@Override
protected void finalize(){
    System.out.println("in finalize");
}

在 Java 编程里面,一般不需要我们去写析构方法,这里只是了解一下就可以了。

点赞
收藏
评论区
推荐文章
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
java第二次作业
(一)学习总结1.什么是构造方法?什么是构造方法的重载?下面的程序是否可以通过编译?为什么?(1)在对面向对象程序中构造方法的主要作用是为类中的属性初始化。在构造方法中要注意以下几点①构造方法的名称必须与类名称一致②构造方法的声明处不能有任何返回值类型的说明③不能在构造方法中使用return返回一个值(2)构造方法的重载就
Wesley13 Wesley13
3年前
java中的构造方法,this、super的用法
1、构造方法定义:与类同名没有返回值的方法称为构造方法;publicclasstest1{privateStringname;privateintage;publictest1(){}}上面的test1()是默认构造方法,即使没有定义java虚拟机在运行的时候也会自动生成,当然如果定义了重载的构造方
Wesley13 Wesley13
3年前
Java类和对象
一、类类是封装对象的属性和行为的载体,在Java语言中对象的属性以成员变量的形式存在,而对象的方法以成员方法的形式存在。1\.类的构造方法构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的,构造方法分为有参构造方法和无参构造方法,区别就在于有没有参数。说这么多概念是不是感觉有点麻木,直接看下面的例子吧。pub
Wesley13 Wesley13
3年前
Java 类及类的构造方法
类类是一个模子,确定对象将会拥有的特性(属性)和行为(方法)。类的特点  类时对象的类型  具有相同属性和方法的一组对象的集合构造方法作用就是对类进行初始化。如果你没有定议任何构造方法的形式,Java会为你取一个不带任何参数的构造函数,那么你产生类的对像时只能用不带参数的方法,如:classa{}//没
Wesley13 Wesley13
3年前
C++中构造函数和析构函数
构造函数定义它是一种特殊的方法。主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。另外,一个类可以有多个构造函数,我们可以根据其参数个数的不同或参数类型的不同来区分它们(这就是构造函数的重载)特点1.构造函数的命名必须和类名完全相同;2.构造函数的功能主要用于在类的对象创建时定义
Wesley13 Wesley13
3年前
JAVA笔记07日
07.01\_面向对象(构造方法Constructor概述和格式)(掌握)\ A:构造方法概述和作用    \ 给对象的数据(属性)进行初始化\ B:构造方法格式特点    \ a:方法名与类名相同(大小也要与类名一致)    \ b:没有返回值类型,连void都没有    \ c:没有具体的返回值ret
Wesley13 Wesley13
3年前
Java 构造方法
构造方法什么是构造方法:构造方法就是与类同名的那个方法且没有返回值。就是一个方法。有什么作用:就是初始化对象的成员变量,无参的构造方法,系统自动初始化。有参则根据你的要求初始化不同的类型,默认值如下:实例成员变量默认值:boolean:falsebyte:0short:0char:int:
Wesley13 Wesley13
3年前
Spring学习总结(5)——IOC注入方式总结
一、构造注入在类被实例化的时候,它的构造方法被调用并且只能调用一次。所以它被用于类的初始化操作。<constructorarg是<bean标签的子标签。通过其<value子标签可以为构造方法传递参数。现在以一个简单的输出学生信息的实例演示如何为构造方法传递参数。实例程序创建过程如下。(1)建立Student接口,
小万哥 小万哥
8个月前
Java 构造函数与修饰符详解:初始化对象与控制权限
Java构造函数Java构造函数是一种特殊的类方法,用于在创建对象时初始化对象的属性。它与类名相同,并且没有返回值类型。构造函数的作用:为对象的属性设置初始值执行必要的初始化操作提供创建对象的多种方式构造函数的类型:默认构造函数:无参数的构造函数,如果用户