java中,什么是构造函数?什么是构造函数重载?什么是java有复制构造函数吗

我现在正在学Java,当我学到构造的时候,我对其内容和用处有些模糊,请给于解释。
构造函数是一种特殊的成员函数,它主要用于为对象分配存储空间,对数据成员进行初始化.构造函数具有一些特殊的性质:(1)构造函数的名字必须与类同名;(2)构造函数没有返回类型,它可以带参数,也可以不带参数;(3)声明类对象时,系统自动调用构造函数,构造函数不能被显式调用;(4)构造函数可以重载,从而提供初始化类对象的不同方法;(5)若在声明时未定义构造函数,系统会自动生成默认的构造函数,此时构造函数的函数体为空.例:classCsphere//声明一个Csphere类{ (doublexoord=0.0,doubleyoord=0.0,doublezoord=0.0,doubleradius=1.0)//构造函数{x=y=r=}.....}
其他答案(共2个回答)
是一个特殊的成员函数,能够自动初始化对象。(不论何时创建对象,该特殊的成员函数,即构造函数都将被执行)
构造函数用于创建对象并使用传递到其中的参数初始化数据成员。此对象正像任意变量一样,在作用域规则之后仍然存在。当对象不存在是,即它的作用域结束时,还会调用名为析构函数的另一特殊成员函数。当对象将要被自动销毁时,如果存在一个析构函数,则会自动调用该析构函数。
构造函数是一个特殊的成员函数,能够自动初始化对象。(不论何时创建对象,该特殊的成员函数,即构造函数都将被执行)
构造函数用于创建对象并使用传递...
类的对象的构造函数调用顺序是先基类后派生类;类的对象的析构函数调用顺序是先派生类后基类
#include &stdio.h&
scanf("%d",&a,&b,&c);
((a+b+c)%2=...
public class A
public A(int a, int b)
答: 你好,可口服补充孕酮
答: 第一个华罗庚
第二个陈景润
答: 关于应用概率统计在重庆大学继续教育学院脱产本科2006级的期末考试中所涉及的考试内容!
1、参数估计2、假设检验等复习内容
答: 我喜欢数学,本科毕业。想在本地开个小学数学教育培训,怎么加盟?
南京MBA培训 衍坤教育数学课是谁教的?教的怎么样呀?本人数学不好,希望找个好点...
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(3468)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'java的多态、重载、构造函数、析构函数的理解',
blogAbstract:'一、多态性\r\n多态有3个条件 1:继承 2:重写(重写父类继承的方法) 3:父类引用指向字类对象 \r\n实例如下:interface& Parent { &&&&&&& String& method(); } \r\nclass& Child1& implements& Parent { &&&&&&& public& String& method() &&&&&&& { &&&&&&&&&&&&&&& return& \"Child1 \"; &&&&&&& } } ',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:4,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}构造代码块和构造函数有什么区别?
构造代码块:是给所有的对象进行初始化,也就是说,所有的对象都会调用一个代码块。只要对象一建立。就会调用这个代码块。
构造函数:是给与之对应的对象进行初始化。它具有针对性。
Person p = new Person();
【】【】【】【】
ISBN编号:&8
出版时间:&2013-3
出版社:&中国人事出版社
定价:¥45 优惠价:¥45&&ISBN编号:&9
出版时间:&2013-4
出版社:&中国人事出版社
定价:¥45 优惠价:¥45&&
????????????
????????????
         Copyright ©
() All Rights Reserved您当前所在位置: >
> 编辑语言
Java中的成员函数重载是什么?
对于几个意义相近的成员函数,有时使用相同的名字便于理解。&本文是关于Java中的成员函数重载的内容,下面是详细介绍。
因此,Java语言实现了成员函数重载,即可以创建几个名字相同、参数不同的成员函数。成员函数重载提?了Java的多态行为。下面的例子用到了重载。
classUniversity{Stringname,University(Stringname,Stringcity){this.name=this.city=}University(){name=&北?大学&;city=&北?&;}}
classUniversityCreateAlt{publicstaticvoidmain(Stringargs[]){Universityu=newUniversity();System.out.println(&大学:&+u.name+&城市:&+u.city);}}
这个例子创建了一个University对象,调用了第二个构造函数。下面是它的运行结果。
C:\&javaUniversityCreateAlt大学:北?大学城市:北?
一个构造函数可以调用另一个构造函数来创建实例。例如:
classUniversity{Stringname,University(Stringname,Stringcity){this.name=this.city=}University(){this(&北?大学&,&北?&);}}
第二个构造函数调用了第一个构造函数来完成实例的初始化。你也可以用重载来创建一般的成员函数。下面这个例子里有University类的两个版本的samecity成员函数。samecity判断一个大学是否在一个城市里或一个大学和另一个大学是否在同一个城市里。一个成员函数用city作参数,另一个用University对象作参数。
classUniversity{Stringname,University(Stringname,Stringcity){this.name=this.city=}booleansamecity(Stringcity){if(city.equals(this.city))}booleansamecity(Universityu){returnsamecity(u.city);}}
classUniversityCity{publicstaticvoidmain(Stringargs[]){Stringcity=&上海&;Universityu1=newUniversity(&北?大学&,&北?&);Universityu2=newUniversity(&清华大学&,&北?&);System.out.println(&u1=&+u1.name+&,&+u1.city);System.out.println(&u2=&+u2.name+&,&+u2.city);System.out.println(&city=&+city);System.out.println(&u1.samecity(u2)=&+u1.samecity(u2));System.out.println(&u1.samecity(city)=&+u1.samecity(city));}}
下面是该程序的运行结果。
C:\&javaUniversityCityu1=北?大学,北?u2=清华大学,北?city=上海u1.samecity(u2)=trueu1.samecity(city)=false
以上就是精品学习网提供的关于Java中的成员函数重载的内容,希望对大家有所帮助。
上一篇:下一篇:
本文相关阅读
高校查询分数线
考生所在地
北京天津辽宁吉林黑龙江上海江苏浙江安徽福建山东湖北湖南广东重庆四川陕西甘肃河北山西内蒙古河南海南广西贵州云南西藏青海宁夏新疆江西香港澳门台湾
<option value="
<option value="
<option value="
<option value="
<option value="
<option value="
<option value="
<option value="
<option value="
<option value="
<option value="
地区批次线查询
考生所在地
北京天津辽宁吉林黑龙江上海江苏浙江安徽福建山东湖北湖南广东重庆四川陕西甘肃河北山西内蒙古河南海南广西贵州云南西藏青海宁夏新疆江西香港澳门台湾
科目理科文科综合其他
<option value="
<option value="
<option value="
<option value="
<option value="
<option value="
<option value="
<option value="
<option value="
<option value="
<option value="
院校所在地北京天津辽宁吉林黑龙江上海江苏浙江安徽福建山东湖北湖南广东重庆四川陕西甘肃河北山西内蒙古河南海南广西贵州云南西藏青海宁夏新疆江西香港澳门台湾
其它中央部委
类型工科农业师范民族
层次本科高职(专科)
高考志愿③部曲
频道热门推荐
栏目最新更新& &一.Java中的构造函数
& &构造函数是对象被创建时初始化对象的成员方法,它具有和它所在的类完全一样的名字。构造函数只能有入口参数,没有返回类型,因为一个类的构造方法的返回类就是类本身。构造函数定义后,创建对象时就会自动调用它,对新创建的对象分配内存空间和初始化。在 Java 中,构造函数也可以重载,当创建一个对象时, JVM 会自动根据当前对方法的调用形式在类的定义中匹配形式符合的构造方法,匹配成功后执行该构造方法。&
public Class Dog
private int age;
private String name;
//无参构造
public Dog(){}
//带参构造:用于给类中的属性赋值
public Dog(int age,string name)
this.name=
& & 二.Java中默认构造
& &如果省略构造方法的定义,则 Java 会自动调用默认的构造方法。但是如果定义了构造方法,则系统不再提供默认的构造方法。默认的构造方法没有任何参数,不执行任何操作。实际上,默认的构造方法的功能是调用此类的父类中的不带参数的那个构造方法,如果父类中不存在这样的构造方法,编译时会产生错误信息。 Object 是 Java 中所有类的根,定义它的直接子类,可以省略 extends 子句,编译器会自动包含它。
& &三.方法重载
方法名称相同,参数项不相同。那么认为一个方法是另一个方法的重载方法。
注意:重载只跟参数有关,与返回类型无关。方法名和参数相同而返回类型不相同,不能说是重载。
public void Say(int age){}
public int Say(int age,string name){}
public String Say(String name,String age){}
& 四.构造方法重载
构造方法重载是方法重载的一个典型的特例。参数列表不同。
可以通过重载构造方法来表达对象的各种多种初始化行为。也就是说在通过new语句创建一个对象时,可以实现在不同的条件下,让不同的对象具有不同的初始化行为。
public Class Text
Public Text(String name){
this.name=
Public Text(String name,String sex){
this.name=
阅读(...) 评论()

我要回帖

更多关于 java构造函数的重载 的文章

 

随机推荐