Java中的构造函数Constructor怎么用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的构造函数Constructor怎么用相关的知识,希望对你有一定的参考价值。

  关于Java中的构造函数Constructor的内容,以下就是该内容的详细介绍。

  每创建一个类的实例都去初始化它的所有变量是乏味的。如果一个对象在被创建时就完成了所有的初始工作,将是简单的和简洁的。因此,Java在类里提?copy;了一个特殊的成员函数,叫做构造函数(Constructor?copy;。一个构造函数是对象被创建时初始对象的成员函数。它具有和它所在的类完全一样的名字。一?copy;定义好一个构造函数,创建对象时就会自动调用它。构造函数没有返回类型,即使是void类型也没有。这是因为一个类的构造函数的返回值的类型就是这个类本身。构造函数的任务是初始一个对象的内部状态,所以用new操作符创建一个实例后,立刻就会得到一个清楚、可用的对象。下面这个例子里,用构造函数取代了成员函数init。

  classUniversityStringname,city;University(Stringname,Stringcity)this.name=name;this.city=city;

  classUniversityCreatepublicstaticvoidmain(Stringargs[])Universityu=newUniversity("北?copy;大学","北?copy;");System.out.println("大学:"+u.name+"城市:"+u.city);

  new语句中类名后的参数是传给构造函数的。

使用方法:

 javascript Boolean.constructor()方法返回一个引用到创建实例的原型布尔函数。
语法

boolean.constructor()

返回值:

    NA

下面是参数的详细信息:

返回创建此对象的实例。
例子:

   

<html>

<head>

<title>JavaScript constructor() Method</title>

</head>

<body>

<script type="text/javascript">

 var bool = new Boolean( );

 document.write("bool.constructor() is:"+bool.constructor);

</script>

</body>

</html>

   

这将产生以下结果:

?

1

   

bool.constructor() is : function Boolean() [native code]

   

参考技术A

  构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。

  JAVA例子

public class UserManagerImpl implements UserManager 
private UserDao userDao;
public UserManagerImpl(UserDao userDao)
this.userDao=userDao;

public void save(String username,String password)
this.userDao.save(username, password);

  注意: 由于Java不允许像C++那样为函数的参数提供缺省值,因此在构造函数中也不能使用缺省值.

  构造函数的特点:

  1.它的函数名与类名相同;

  2.它可以重载;

  3.不能指定返回类型,即使是void也不行;

  4.虽然在一般情况下,构造函数不被显式调用,而是在创建对象时自动被调用。但是并不是不能被显示调用。有些时候是一定要显示调用的,只要是父类有带参的构造函数,在子类中就必须显示的调用父类的构造函数,因为子类的构造器在实例化时无法找到父类的构造函数(当父类有自己写的无参构造函数时,子类也不用显示调用)。

参考技术B

注意: 由于Java不允许像C++那样为函数的参数提供缺省值,因此在构造函数中也不能使用缺省值.

构造函数的特点:

1.它的函数名与类名相同;

2.它可以重载;

3.不能指定返回类型,即使是void也不行;

4.虽然在一般情况下,构造函数不被显式调用,而是在创建对象时自动被调用。但是并不是不能被显示调用。有些时候是一定要显示调用的,只要是父类有带参的构造函数,在子类中就必须显示的调用父类的构造函数,因为子类的构造器在实例化时无法找到父类的构造函数(当父类有自己写的无参构造函数时,子类也不用显示调用)。

构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。

参考技术C 每创建一个类的实例都去初始化它的所有变量是乏味的。如果一个对象在被创建时就完成了所有的初始工作,将是简单的和简洁的。因此,Java在类里提?copy;了一个特殊的成员函数,叫做构造函数(Constructor?copy;。一个构造函数是对象被创建时初始对象的成员函数。它具有和它所在的类完全一样的名字。一?copy;定义好一个构造函数,创建对象时就会自动调用它。构造函数没有返回类型,即使是void类型也没有。这是因为一个类的构造函数的返回值的类型就是这个类本身。构造函数的任务是初始一个对象的内部状态,所以用new操作符创建一个实例后,立刻就会得到一个清楚、可用的对象。下面这个例子里,用构造函数取代了成员函数init。
classUniversityStringname,city;University(Stringname,Stringcity)this.name=name;this.city=city;
classUniversityCreatepublicstaticvoidmain(Stringargs[])Universityu=newUniversity("北?copy;大学","北?copy;");System.out.println("大学:"+u.name+"城市:"+u.city);
new语句中类名后的参数是传给构造函数的。
参考技术D   constructor是java中用于创建指定类型实例对象的必要方法。
  在代码中经常有看到通过new 关键字来创建一个对象,其实质都是通过调用这个constructor来实现的,在这个constructor一般都是做一些实例对象属性的初始化工作(属性赋值)。

java 构造方法 constructor demo笔记

demo 地址 http://pan.baidu.com/s/1bo2FG1T

package com.ws.study;

/**
 * @author Administrator
 *
 */
public class constructorA {
	
	/**
	 * 构造函数
	 */
	public constructorA(){
		System.out.println("这是一个无参数构造函数");
		
	}
	
	/**
	 * 有参数的构造函数
	 * @param i
	 * @param j
	 */
	public constructorA(int i,int j){
		System.out.println(i + "x" + j +"=" + i*j);
		
	}
	
	
	public static void main(String[] args) {
		
		try {
			/**
			 *  先来个热身,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?你第一想到的肯定是new,但是注意一点:
				A a = (A)Class.forName(“pacage.A”).newInstance();
				这和你 A a = new A(); 是一样的效果。
				newInstance()是方法 ,new 是关键字 创建对象的方式不一样,newInstance使用类加载机制,后者是创建一个新类
				newInstance()只能调用无参构造方法,而new关键字创建对象不受限制。
				newInstance()类已加载,已连接,new 类可以没被加载
				newInstance()弱类型,低效率,只能调用无参构造。
				new强类型,相对高效能调用任何public的方法。
				Class.forName()返回的是类
				Class.forNmae().newInstance()返回的object()
			 */
			constructorA cons= (constructorA) Class.forName("com.ws.study.constructorA").newInstance();
			new constructorA(3, 2);
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		
	}

}

  

/**
 * 
 */
package com.ws.study;

/**
 * @author Administrator
 *
 */
public class constructorB {

	/**
	 * 
	 */
	public constructorB() {
		System.out.println("这是一个无参数构造函数B");
		// TODO Auto-generated constructor stub
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		constructorA cona=new constructorA(1,2);
		new constructorB();
		try {
			Class.forName("com.ws.study.constructorA").newInstance();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

  

以上是关于Java中的构造函数Constructor怎么用的主要内容,如果未能解决你的问题,请参考以下文章

kotlin之构造函数(constructor)

C#和Java中的构造器constructor是啥?起啥作用?为啥不可以被override??

java-面向对象-封装-this-构造函数

JS高级中的constructor构造函数

java 构造方法 constructor demo笔记

React中的constructor和super+生命周期