初始化和清理是涉及安全的两个问题。C++和Java都引入了构造器(constructor)的概念,这是一个在创建对象时被自动调用的特殊方法。

可以假想为编写的每个类都定义一个initialize()方法。在每次使用对象的时候,都会用这个方法。在Java中,通过提供构造器,类的设计者可确保每个对象都会得到初始化。

在Java中,构造器与类的名称是相同的。如果没有定义构造器,那么Java就会自动调用默认的构造器。

我们先来看看一个带有构造器的简单类:

class Yes(){
Yes(){
System.out.print("Yes")
}
}
public class breakyizhan {
public static void main(String[] args) {
for(int i=0; i <5;i++){
new Yes()
}
}
/*
(www.breakyizhan.com) 输出结果是:
Yes Yes Yes Yes Yes
*/

上面这个构造器是没有接受任何参数的构造器,叫做默认构造器,也就做无参构造器。但是还有一种带参数的构造器,如下:

class Yes(){
Yes(int i){
System.out.print("Yes" + i)
}
}
public class breakyizhan {
public static void main(String[] args) {
for(int i=0; i <6;i++){
new Yes(i)
}
}
/*
(www.breakyizhan.com) 输出结果是:
Yes 0 Yes 1 Yes 2 Yes 3 Yes 4 Yes 5
*/

构造器是一种特殊类型方法,它没有返同值。这是Java用来初始化用的特殊方法,在一个类中,也可以有很多个构造器,来对这个类创建对象时进行初始化。

更多教程,请访问: Break易站

Java的构造器的更多相关文章

  1. Java私有构造器

    Java私有构造器:使用private关键字声明的构造函数.由于类的构造函数时私有的,所以此类不能被实例化,同时也不能被继承.<Effective Java>第三条:用私有构造器或者枚举强 ...

  2. Java父类构造器的讲解

    众所周知,对于Java中的所有类而言,它们有一个根父类,即java.lang.Object类. 对于Java中构造器执行的顺序而言,程序执行的顺序为,先执行父类的非静态代码块,然后执行父类的相应的构造 ...

  3. java中构造器(Constructor)

    大部分内容转自:http://tech.it168.com/j/2006-05-18/200605181021879.shtml        构造器是一个创建对象时被自动调用的特殊方法,为的是初始化 ...

  4. 《Java基础——构造器(构造方法)》

    Java基础--构造器(构造方法)       总结: 1.构造器名应与类名相同,且无返回值. 2."new 方法"的本质就是在调用构造器. 3.构造器的作用--初始化对象的值. ...

  5. Java之构造器的作用

    我总是要把构造器和方法混淆,后来发现, 方法,实际上,是需要用于执行java代码的,而构造器, 构造器,,,是一个类的实例!! 为什么呢? 类的实例,我们需要用类来创建对象,进而访问其属性,因为实例是 ...

  6. java 父类构造器

    当创建任何java对象时,程序总会首先调用系统的父类非静态初始化块(隐式执行)和父类构造器(从object开始(java程序中所有类的最终父类都是java.lang.Object类,使用语句super ...

  7. Java :构造器中的显式参数和this隐式参数

    1.构造器 写一个Java类,首先要先从构造器开始,构造器与类同名,在构造类的对象时会先从构造器开始. 构造器总是伴随着new操作符的执行而被调用. 构造器主要是用来初始化类的实例域. 构造器的特点: ...

  8. Java之构造器和构造方法的使用和意义

    我总是要把构造器和方法混淆,后来发现, 方法,实际上,是需要用于执行java代码的,而构造器, 构造器,,,是一个类的实例!!(我的理解,构造器是一个对象) 为什么呢? 类的实例,我们需要用类来创建对 ...

  9. java 类构造器中加入有参构造器及调用顺序【思路】

    package com.ykmimi.new1; /** * * @author deadzq * */ public class AnyThing { public AnyThing() { thi ...

随机推荐

  1. swift3.0 顶部状态栏隐藏

    横屏进入手机状态栏是隐藏的,但是调用了相册选去图片后顶部状态栏又显示了出来,网上查阅按照以下方式: override var prefersStatusBarHidden: Bool{ return ...

  2. 中国大学MOOC-陈越、何钦铭-数据结构-2015秋 01-复杂度2 Maximum Subsequence Sum (25分)

    01-复杂度2 Maximum Subsequence Sum   (25分) Given a sequence of K integers { N​1​​,N​2​​, ..., N​K​​ }. ...

  3. pentaho专题系列之kettle篇--kettle源码编译

    最近看了一些kettle的文章,都是kettle7.0以前的,已经跟不上时代了.截止笔者写这篇文章的时候,github上面的已经是7.1.0.3了,而且是发行版的,最新的快照版本已经是8.0的了.基于 ...

  4. 分辨率验证工具 - 【Firesizer】的使用

    Firesizer是一款测试分辨率的插件. 下载方式:Firefox工具栏——〉工具——〉附加组件--〉搜索Firesizer并安装,浏览器会自动重启 使用方式:浏览器右下角直接切换分辨率即可,如下图 ...

  5. Orleans例子再进一步

    Orleans例子再进一步 这是Orleans系列文章中的一篇.首篇文章在此 步骤 现在我想再添加一个方法,到IGrains项目内,这个方法里面有个延迟3秒,然后返回一个Task<string& ...

  6. wpf mvvm datagrid DataGridTemplateColumn的绑定无效的可能原因之一!

    昨天在mvvm wpf的开发中遇到一个问题,绑定不起作用,编辑阶段没问题也没有提示找不到对应的绑定,但是在运行之后却不起作用,查了很多资料,说法不一,有些是要删除datagrid的一行,直接绑定del ...

  7. WAMP环境 apache 2.4.23 局域网访问

    参考了很多大神的分享解答,  现在不知道是参考的哪个人的 如有抄袭 侵权请告知, 加上链接或者删除!!! 最近想按个分屏提高学习代码效率, 晚上突然想到可以用本本连接WiFI 然后通过 局域网访问PC ...

  8. Vue页面Demo

    为了学习了解Vue.js,试着写了一个demo,如下; 准备工作: 需要引入的js和css库有: 1.vue.js 主要是学习,所以引入了这个js库,实际运行时应该使用vue.min.js 2.axi ...

  9. dom作业

    <body> <select size="7" style="width: 200px;" id="slt"> &l ...

  10. MFC基础窗口创建,CWinApp、CFrameWnd

    1.CWinApp(包括了这个类的导出类):代表了我们的程序.封装了消息循环等. 2.CFrameWnd:代表了程序的框架窗口.封装了窗口的注册.创建.显示.刷新.等等窗口操作. 3.Win32中.一 ...