java中什么叫构造器 Java中构造器有什么用
本篇文章给大家谈谈java中什么叫构造器,以及Java中构造器有什么用对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
Java中构造器有什么用
构造器最大的用处就是在创建对象时执行初始化,当创建一个对象时,系统会为这个对象的实例进行默认的初始化。如果想改变这种默认的初始化,就可以通过自定义构造器来实现。
构造器可以提供许多特殊的方法,构造器作为一种方法,负责类中成员变量(域)的初始化。
扩展资料:
构造器分类:
C#的类有两种构造器:实例构造器和缺省构造器。
实例构造器负责初始化类中的实例变量,它只有在用户用new关键字为对象分配内存时才被调用。而且作为引用类型的类,其实例化后的对象必然是分配在托管堆(Managed Heap)上。
缺省构造器是在一个类没有声明任何构造器的情况下,编译器强制为该类添加的一个无参数的构造器,该构造器仅仅调用父类的无参数构造器。
参考资料:百度百科-构造器
java 构造器是什么意思
构造器就是和类名相同但无返回类型的方法。用于当前或某一对象的实例化,并将当前或某一对象返回。要得到一个类的实例时,往往是要运行其构造函数的。
构造器是Java和C#学习中很重要的一个概念,构造器可以提供许多特殊的方法,构造器作为一种方法,负责类中成员变量(域)的初始化。实例构造器分为缺省构造器和非缺省构造器。
构造器最大的用处就是在创建对象时执行初始化,当创建一个对象时,系统会为这个对象的实例进行默认的初始化。如果想改变这种默认的初始化,就可以通过自定义构造器来实现。
扩展资料:
1、构造器作用
构造器是为了创建一个类的实例。这个过程也可以在创建一个对象的时候用到:
Platypus p1= new Platypus();。
构造器可以用来在初始化对象时初始化数据成员,一个类可以有多个构造器。一个类的构造器的名称必须与该类的名称一致。要退出构造,可以使用返回语句“return;”。
相反,方法的作用是为了执行java代码。
2、修饰符,返回值和命名的不同
构造器和方法在下面三个方面的区别:修饰符,返回值,命名。和方法一样,构造器可以有任何访问的修饰: public, protected, private或者没有修饰(通常被package和 friendly调用).。
不同于方法的是,构造器不能有以下非访问性质的修饰: abstract, final, native, static,或者 synchronized。
返回类型也是非常重要的。方法能返回任何类型的值或者无返回值(void),构造器没有返回值,也不需要void。
最后,谈谈两者的命名。构造器使用和类相同的名字,而方法则不同。按照习惯,方法通常用小写字母开始,而构造器通常用大写字母开始。构造器通常是一个名词,因为它和类名相同;而方法通常更接近动词,因为它说明一个操作。
参考资料:百度百科-构造器
什么叫做JAVA的构造方法(含义)
在Java中,每个类都需要至少一个的构造方法(可以有多个),它用于构造类的对象;在Java中构造方法必须与类名相同;构造方法可以不带有参数、也可以带有参数,不带有参数的构造方法被称为无参构造(no-arg)方法。
这里大家可能会觉得奇怪,我们之前的MainClass好像就没有构造方法。其实是这样的,如果我们不给类提供构造方法,编译器会自动提供一个无参构造方法。
定义构造方法的语法如下:
Java代码
constructorName(listOfArguments){
[constructor body]
}
其中constructorName必须和你定义的类的名字相同,listOfArgumengs是构造方法的参数列表,当然,这里也可以不带有任何参数。然后大括号内是我们的方法体。这里提一下,构造方法也可以带有访问控制符,即public、protected、private和default(忽略情况下)。
下面的例子给出了一个构造方法的实例:
Java代码
public class MainClass{
double radius;
// Class constructor
MainClass(double theRadius){
radius= theRadius;
}
}
可以看出,我们给MainClass定义了一个构造方法,它的修饰符是默认的。后面的教程大家会学到这几个访问控制符的作用。我们的MainClass的构造方法带有一个double参数,这里大家也可以看出,构造方法的参数可以用于初始化类的属性,其实强制要求带参数的构造方法可以保持类的状态的完整性,即保证构造出的对象是符合要求的。
默认构造方法
前面我讲过,如果没有提供构造方法,编译器会提供一个默认的构造方法(没有参数)。这里其实也隐含着一个意思,即,如果我们提供了构造方法,那么编译器是不会提供默认的构造方法的。我们可以通过下面的代码来验证。
Java代码
public class MainClass{
double radius;
// Class constructor
MainClass(double theRadius){
radius= theRadius;
}
public static void main(String[] args){
MainClass mc= new MainClass();
}
}
大家可以尝试编译上面的代码,可以发现编译会出错,提示的错误信息为:
Java代码
The constructor MainClass() is undefined
这个信息的意思是构造方法MainClass()没有定义,即编译器没有给我们提供默认的构造方法。那么如果我们还想继续使用无参的构造方法的话,这就需要我们自己来提供了,如:
Java代码
public class MainClass{
double radius;
MainClass(){
}
// Class constructor
MainClass(double theRadius){
radius= theRadius;
}
}
上面的代码我们自己手动的提供了一个无参的构造方法MainClass(),大家现在尝试编译代码,会发现,代码是可以通过编译的。所以在自己实际的工作中,稍微注意这点。
多个构造方法
其实我们前面已经见过多构造方法的例子了,不过这里给大家提示下,Java支持一个类中定义多个构造方法,如:
Java代码
class Sphere{
int radius= 0;
Sphere(){
radius= 1;
}
Sphere(int radius){
this.radius= radius;
}
}
这里我们定义了球(Sphere)类,然后定义了它的半径并提供了两个构造方法。在默认的构造方法里,我们将半径设置为1,然后在带有半径作为参数的构造方法中,我们设置了半径为提供的值。
在一个构造方法中调用另一个方法
我们一直称呼构造方法,那么既然是方法,当然支持方法的调用。在Java中,我们可以从一个构造方法中调用另一个构造方法。要调用另一个方法,只要使用this关键字,然后后面跟着括号,如果要调用的构造方法中带有参数,只要将参数放到对应的位置即可。如:
Java代码
class Sphere{
int radius= 0;
double xCenter;
double yCenter;
double zCenter;
Sphere(){
radius= 1;
}
Sphere(double x, double y, double z){
this();
xCenter= x;
yCenter= y;
zCenter= z;
}
Sphere(int theRadius, double x, double y, double z){
this(x, y, z);
radius= theRadius;
}
}
在使用这种方式的时候,稍微注意下,不要引起循环调用。在出现循环调用的时候,编译器会出现类似于如下的提示来阻止类编译通过:
Java代码
Recursive constructor invocation MainClass(int)
它的意思是递归的构造方法调用,大家遇到这个问题的时候,稍微检查下自己的代码,看看构造方法是否出现递归调用了。
OK,本文到此结束,希望对大家有所帮助。