栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java程序设计——对象的构造和初始化

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java程序设计——对象的构造和初始化

(本文章仅对上课所学进行总结)

在Java中,使用构造函数(constructor,也称为构造方法)是生成实例对象的唯一途径。在调用new时,既可以带有变量,也可以不带变量,这要视具体的构造方法而定。

调用构造方法时,步骤为:

       1.分配新对象的空间,并进行默认的初始化。在Java中这两步是不可分的,从而可确保不会有没有初值的对象;

       2.执行显示的成员初始化;

       3.执行构造方法。

[显示成员初始化]

    在成员说明中有简单的表达式,例如:

public class Initialized{
    private int x=5;
    private String name="Fred";
    private Date created =new Date();
}

    即在创建了Initialized的实例,系统为其初始化之后,还要给实例中的变量x,name赋值。

[构造方法]

    显示构造方法设定的初值不具有变化性,所以未来实现更一般的操作,系统定义了默认的构造方法,同时允许程序员编写自己的构造方法完成不同的操作,在创建对象实例时由new运算符自动调用。

构造方法的特点:名字与类名相同,没有返回值,方法可重载,必须为所有的变量赋初值,通常要说明为public类型,可以按需包所需的参数列表。

例:

public class Xyz{
    //成员变量
    int x;
    public Xyz(){    //参数表为空的构造方法
        //创建对象
        x=0;
    }
    public Xyz(int i){    //带一个参数的构造方法
        //使用参数创建对象
        x=i;
    }
}

[默认构造方法]

每个类都必须至少有一个构造方法,若程序员没有为类定义构造方法,则系统会自动为该类生成一个默认的构造方法。构造方法的参数列表及方法体均为空,所生成的对象的属性也为零或空;若程序员定义了一个或多个构造方法,则将自动屏蔽掉默认的构造方法,且构造方法不能继承。

[构造方法重载]

在进行对象实例化时可能会遇到许多不同情况,于是要求针对所给的不同的参数调运各个不同的构造方法。这时,可以通过在一个类中同时定义若干个构造方法,亦即对构造方法重载来实现,例:

public class Student{
    String name;
    int age;

    public Student(String s,int n){
        name=s;
        age=n;
    }
    public Student(String s){
        this(s,20);
    }
    public Student(){
        this("Unkonwn");
    }
}

[finalize()方法]

finalize()方法属于Object类,当实例对象不被任何变量引用时,Java会自动进行“垃圾回收”,收回该实例所占用的内存空间。

[this引用]

在Java中,如果在类的成员方法中访问类的成员变量,可以使用关键字this指明要操作的对象,例:

public class Date{
    private int day,month,year;
    public void printDate(){
        System.out.println("The current date is (dd/mm/yy):"+this.day+"/"+this.month+"/"+this.year);
    }
}

在类方法中,Java自动用this关键字把所有变量和方法引用结合在一起。基于这个原因,上述例子中的this引用是不必要的。

有些情况下关键字this是必须的。例如,在完全独立的类中调用一个方法,同时把对象实例作为一个自变量来传送。此时,要用this指明对哪个对象实例进行操作。例如:

Birthday bDay=new Birthday(this);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/439475.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号