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 UserManagerprivate 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怎么用的主要内容,如果未能解决你的问题,请参考以下文章