您的位置:

构造函数java,构造函数何时被调用

本文目录一览:

JAVA的构造函数是怎么写的。万分感谢。路过的请不要嘲笑%>_

JAVA的构造函数是:SetLocal EnableDelayedExpansion

set classpath=.

for %%c in (lib\*.jar) do set classpath=!classpath!;%%c

set classpath=%classpath%;./classes;

java com.ham.server.Server。

1、无参构造方法

无参构造方法又分为隐式无参构造方法和显示无参构造方法。

隐式无参构造方法

在定义类的时候,如果没有给类定义一个构造方法,Java编译器在编译时会默认提供一个隐式的构造方法,它没有任何参数,并且有一个空的方法体。例如,Person类中隐含一个无参构造方法,在main方法中可以通过new关键字来调用此默认的构造方法,代码如下:

2、显式无参构造方法

隐式无参构造方法是由系统提供的,无法修改其内容。但有时需要在调用这个构造方法时初始化类成员属性或执行一些操作,要实现这个需求,就需要为它定义一个显式无参构造方法,修改上述代码如下:

3、显示有参构造方法

构造并初始化对象是构造方法的作用,所以有时需要给这个方法传入一些参数,定义一个显示的有参构造方法。例如:

Java中,什么是构造函数?

当新对象被创建的时候,构造函数会被调用。每一个类都有构造函数。在程序员没有给类提供构造函数的情况下,Java编译器会为这个类创建一个默认的构造函数。

java的构造函数

构造方法用public修饰,因为建立这个类的实例对象的时候系统需要调用它,但是没有返回值类型,构造方法的特点就是:

1.和类名相同

2.不可使用return返回数值

3.没有返回类型修饰词

符合的就是构造函数,当你建立这个类的实例对象的时候如Fruit s=new Fruit();这样写的时候,系统就会调用第一个构造方法,应为它没有传任何参数,要是这样写Fruit s=new Fruit(new String("aaa"),double w);系统会自动调用第二个构造方法。一个类可以有多个构造方法。

void setName(String n)

{

name = n;

}

String getName()

{

return name;

}

这个分开写主要是为了安全性考虑,不让其他人直接调用修改成员变量,只通过类的内部方法进行调用。你这个里面的name应该用private修饰!

我知道的就这么多了!

java语言中,构造函数的作用是什么

Java类至少包含一个构造器,如果没有定义,那么系统会为这个类提供一个无参构造器。

构造函数是在创建给定类型的对象时执行的类方法,它通常用于初始化数据成员

如果该类中定义了一个私有的构造函数,那么这个类就不能被new

java中的构造函数有什么用?用它有什么好处?在什么地方用?

构造函数是类的一个特殊方法,这个方法用来生成实例时由系统自动调用,程序员无法直接调用。构造函数方法名同类名相同且参数为空。子类继承父类后默认继承父类的构造函数,即:子类存在隐含方法:super(),如果子类重写构造函数则子类也隐含调用super()。

如下例:

例一:

package sample;

public class A{

A(){

System.out.println("主类构造函数调用");

}

public static void main(String args[]){

A g=new A();

subA s=new subA();

}

}

class subA extends A{

}

执行结果为:

主类构造函数调用

主类构造函数调用

本例中子类subA中没有任何方法,所以隐含调用super(),super()指向A()。

例二:

package sample;

public class A{

A(){

System.out.println("主类构造函数调用");

}

public static void main(String args[]){

A g=new A();

subA s=new subA();

}

}

class subA extends A{

public subA(){

}

}

执行结果为:

主类构造函数调用

主类构造函数调用

本例中子类subA只有一个空方法suba()中没有任何方法,所以也隐含调用super(),super()指向A()。

例三:

package sample;

public class A{

A(){

System.out.println("主类构造函数调用");

}

public static void main(String args[]){

A g=new A();

subA s=new subA();

}

}

class subA extends A{

public subA(){

System.out.println("子类构造函数调用");

}

}

执行结果为:

主类构造函数调用

主类构造函数调用

子类构造函数调用

本例中子类subA的方法subA()虽然后输出但同上例中相同都为构造函数,所以也隐含调用super(),super()指向A()。

java中构造函数的特点

1.构造函数的命名必须和类名完全相同;在java中普通函数可以和构造函数同名,但是必须带有返回值。

2.构造函数的功能主要用于在类的对象创建时定义初始化的状态。它没有返回值,也不能用void来修饰。这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择。而其他方法都有返回值,即使是void返回值。尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的。

3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用;而一般的方法是在程序执行到它的时候被调用的。

4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的。而一般的方法不存在这一特点。

5.当一个类只定义了私有的构造函数,将无法通过new关键字来创建其对象,当一个类没有定义任何构造函数,C#编译器会为其自动生成一个默认的无参的构造函数。