构造方法没有返回类型是否有类型限制

&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
构造方法到底为我们做了什么 ? 那些事儿真是构造方法在做的么 ?
摘要:&~是初始化变量吗?~对于静态变量,构造方法也能初始化吗?~不同类型的变量,系统自动构建的构造方法给它们的默认值各是什么?~Object类的构造方法实现了什么功能?首先,做一下准备工作:为了方便,写一个静态工具方法如下:staticvoidp(Strings,Objecta){System.out.println(s+&:&+a);}&这个方法是为了测试变量的值使用的,如:p(&a&,a);&指查看变量a的
~是初始化变量吗 ? ~对于静态变量,构造方法也能初始化吗 ? ~不同类型的变量,系统自动构建的构造方法给它们的默认值各是什么 ? ~Object类的构造方法实现了什么功能 ? 首先,做一下准备工作: 为了方便,写一个静态工具方法如下:
static void p(String s, Object a) { System.out.println(s + &:& + a); }& 这个方法是为了测试变量的值使用的,如: p(&a&, a);& 指查看变量a的值。 另外,若无特别声明,以下的变量和方法均存在于类T public class T {}&中,上面的静态方法p同样遵守这个约定。 现在开始看第一个,先使用一个例子来说明这个问题:&
public static void main(String[] args) {
T t = new T();
p(&未赋初值的int a&, t.a);
p(&未赋初值的int[] aa&, t.aa);
p(&未赋初值的String&, t.s);
p(&未赋初值的Object&, t.o);
}& 可以看到输出的结果如下:
未赋初值的int a:0
未赋初值的int[] aa:null
未赋初值的String:null
未赋初值的Object:null
这说明了,构造方法为变量a初始化了,其默认值为0,为变量aa也初始化了,其默认值为null。 通过这个例子,是否就能看出,构造方法为变量初始化会遵循以下原则呢: 若变量是值类型,则初始化为一个特定值; 若变量是引用类型的,则初始化为null。 下面看第二个问题,同样,举例说明:
static int[]
public static void main(String[] args) {
//T t = new T();
p(&未赋初值的int a&, a);
p(&未赋初值的int[] aa&, aa);
p(&未赋初值的String&, s);
p(&未赋初值的Object&, o);
}& 可以看到输出的结果为:
未赋初值的int a:0
未赋初值的int[] aa:null
未赋初值的String:null
未赋初值的Object:null
从上例可以看出,对于所有的静态变量,均得到了和非静态变量一样的初始值。 第三个问题,对于不同的类型,从上面的推断来看,基本的数值类型中,整型的初始值会是0,浮点的话,应该是0.0了,双精度也应该为0.0,长整型和整型一样,也应该是0;而对于各种不同类型的引用类型,它们的初始值都一样,应该是null,接下来,用代码阐明问题:&
public static void main(String[] args) {
T t = new T();
p(&未赋初值的int a&, t.a);
p(&未赋初值的float f&, t.f);
p(&未赋初值的double d&, t.d);
p(&未赋初值的long l&, t.l);
p(&未赋初值的int[] aa&, t.aa);
p(&未赋初值的String&, t.s);
p(&未赋初值的Object&, t.o);
} 可以看到输出结果如下:
未赋初值的int a:0
未赋初值的float f:0.0
未赋初值的double d:0.0
未赋初值的long l:0
未赋初值的int[] aa:null
未赋初值的String:null
未赋初值的Object:null
从以上输出结果可以知道,上面的推断是正确的。 那么,这些事都是怎么做到的呢 ?既然所有的类都是Object类的子类(继承自Object,当然除了Object自身),那么,这些事会不会和Object有什么关系呢 ? 好吧,先看看Object的构造方法都做了些什么好了。 结果,让人失望了。 Object类并没有构造方法,它除了线程方法和toString()方法,就剩下本地方法(Native Method),具体的细节,就不得而知了,要是什么时候有幸能看到其本地方法的实现,一定好好研究研究。&&
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
新用户大礼包!
现在注册,免费体验40+云产品,及域名优惠!
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
构造方法到底为我们做了什么 ? 那些事儿真是构造方法在做的么 ?相关信息,包括
的信息,所有构造方法到底为我们做了什么 ? 那些事儿真是构造方法在做的么 ?相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
International关于类和对象以及构造方法
在日常生活中我们常常在外形和功能方面对一个具体的事物进行描述,一棵树,一颗草,一个人都可以成为我们所描述的东西。随着计算机语言的发展,我们越来越希望能将现实中的事物抽象化到计算机语言中,而我现在所了解的便是java。
&Java本质上就是面向对象的编程,Java中存在的类和对象一定程度上为我们将现实生活中的主体进行抽象化提供了基础,从通俗意义上讲,我们现实生活中的一个对象,所能对应的便是java中的一个类。
Java编程中的类则根据相应的格式对对象进行一个抽象的定义,与生活中队对对象的定义相似的是程序中的类是由属性和方法构成的,其中属性是根据对象的特征进行的一个定义,方法则是根据对象的行为或者功能进行的一个定义。
既然介绍完了类和对象的大概的内容,那么现在我们就需要介绍如何在java中对现实生活的的对象进行抽象化。
java中类拥有一个固定的格式:public class 类名(){}。其中class是定义类常用的英文单词
其中属性的格式较为单一,其一般采用:访问修饰符& 数据类型&
与此同时,java中的类还有一个比较重要的内容:方法。
java中的方法可分为构造方法和普通方法两种,其中构造方法的构造方法名必须与类名相一致,但是括号中可以加入相应的参数对属性值进行一个初始化。
其具体的格式是
访问修饰符& 构造方法名(数据类型 参数名,...){},
而普通方法有与此相似:
访问修饰符& 返回值类型& 方法名(数据类型
参数名,...) {}。
其中构造方法的作用是为了实例化对象,以及上述所提到的作用,普通方法则可以理解为我们所说的行为。
Java还有一个特点就是在java中如果在类中没有定义构造方法,那么java会默认提供一个没有参数的构造方法。但如果类中存在自定义的构造方法,则不存在默认的构造方法。
以上便是对类的一个定义,既然定义了一个类,那么我们接下来便要考虑对类进行实例化以及调用,实例化对象的关键字:new
类名 对象名& = new 构造方法名(参数值,...);
类名 对象名& = new 类名(参数值,...);
调用属性和方法:
对象名.属性名
对象名.方法名(参数值,...)。
在类中,我们还引入了方法的重载。在方法重载中,方法重载的方法名必须完全一致,但是方法所带的参数必须要有所不同。
方法重载的引用确保了我们能使程序更加简洁化。
Java中还有一个比较重要的关键字(this关键字),在this关键字的使用中this.表示的类中的属性,而不加this关键字的对象名则表示的是一个参数。与此同时,this关键字还有一个特别的用法,就是this(。。。)表示的是调用的是后面的带有相应参数的构造方法。
Java就是面向对象的编程,、在这个过程中,类和对象十分重要。它们是java的基础以及比较核心的内容。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。         
您现在的位置:&&>&&>&&>&正文
java类的构造方法
来源:()  【】 
  类在创建时,会执行类的成员变量的初始化和执行类的构造方法,构造方法是JAVA在创建对象 new 动作时要执行的方法  1 JAVA基本数据类型初始化默认值  int 0  long 0L  float 0L  double 0D  char ’“u0000’  boolean false  所有引用数据类型 null  2 构造方法  构造方法 是类在创建实例时 new 动作时要执行的方法,如果类中没有定义构造方法 JAVA编译器会为类自动添加一个构造方法  ClassName(){}  examda提示: 构造方法的名称必须与类名一样,而且构造方法没有返回值;  当类中已经创建了构造方法,编译器就不再为类自动创建构造方法;  所以当创建一个带参数的构造方法后,必须同时要创建一个不带参数的构造方法  example 1  public class Example{      public Example(){  }  public Example(int id,int age){  this.id=  this.age=  }  } 1&&&
看了本文的网友还看了
?&&()?&&()?&&()?&&()?&&()?&&()
此栏目下没有文章
此栏目下没有推荐文章
? ?   ? ?   ? ?   ? ?   ? ?
? ?   ? ?   ?
?   ? ?    ? ?   ? ?   ? ?   ? ?
? ?   ? ?
实用工具 |
| 大全 | 大全
     |
版权声明:如果网所转载内容不慎侵犯了您的权益,请与我们联系,我们将会及时处理。如转载本内容,请注明出处。
Copyright & 2004-
 网 All Rights Reserved 
中国科学院研究生院权威支持(北京) 电 话:010- 传 真:010-Java中构造方法的定义限制特点
Java 中构造方法的功能和特点,构造方法和一般方法的区别。
Java中类的构造方法
【Java】Java中类的构造方法特性
构造方法特征
java中什么是构造方法及其作用
java类的构造方法特点
java 构造方法和一般方法的区别
Java中构造方法的定义和作用
【JAVA】38、构造方法的定义
没有更多推荐了,定义类的构造方法不能有返回值类型,其名称与___名相同。_百度知道
定义类的构造方法不能有返回值类型,其名称与___名相同。
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
也就是 class
后面的那个
例如:public class Doctor { ........./// &summary&/// 默认构造函数/// &/summary&public Doctor(){ }
采纳率:47%
是那个类的构造函数,就和那个类的名字相同啊
定义类的构造方法不能有返回值类型,其名称与__类__名相同。
其名称与Class的名称相同。
其他3条回答
为您推荐:
其他类似问题
构造方法的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 构造方法返回类型 的文章

 

随机推荐