Java中的构造函数是用于初始化类的对象的特殊类型的方法。构造函数在类的对象创建时被调用。就像方法一样,虽然它们持有一组代码行,但它们与它们有很大不同。构造函数与 Java 类具有相同的名称,但它没有任何返回类型。在Java中,new()关键字用于创建一个对象,每次创建一个新对象并调用一个构造函数时。构造函数在为对象分配内存后被调用。在创建对象时,构造函数用于将类变量的值初始化为默认值或所需的值。
如果用户没有在程序中创建任何构造函数,Java 本身会为其创建一个默认构造函数,并将默认值分配给不同的对象,例如数字默认值为 0,字符(' ')和引用变量为无效的。与方法一样,构造函数可以重载,即单个类可以有多个构造函数,如果它们都具有唯一的签名。
广告 该类别中的热门课程 JAVA 掌握 - 专业化 | 78 课程系列 | 15 次模拟测试Java中构造函数的基本语法如下:
语法:
public class Student() // name of the class { . . . . . . . . . . . . Student() // this is Constructor with the same name of class { . . . . . . } new Student(); // object creation and value initialization }
在上面的语法中,Student() 是构造函数的名称,与类的名称相同,Java 中的对象是使用关键字 new 创建的。
为了了解 Java 中构造函数的工作原理,让我们看一下下面给出的示例:
代码:
public class Student() { int rollno; String name; Student(int rollno, String name) { this.rollno = rollno; this.name = name; } public static void main(String[] args) { Student st = new Student(12, 'Ananya'); System.out.println("Student name = "+ st.name + "Student rollno = "+st.rollno); } }
输出:
在上面的例子中,我们有实例变量(类变量)。 roll no 和name 和st 是Student类创建的对象的名称。创建对象时,它会调用构造函数 Student 并初始化类变量,其中 roll no 值为 12,名称为“Ananya”;否则,默认值(例如 rollno 的 0 和名称的 null)将被分配给变量。因此,在分配值并打印它们之后,学生姓名将打印为 Ananya,学生卷号将打印为 12。
Java中有2种基于参数的构造函数:
当我们不在构造函数中传递参数时,该构造函数称为非参数化或无参数构造函数。当程序员在Java程序中没有定义任何构造函数时,Java编译器本身会添加一个构造函数,称为默认构造函数,它为对象提供默认值,如0、null等。默认构造函数不是特殊类型的构造函数但属于无参数构造函数的范畴。
代码:
public class Hello() { String name; void display() //method to display name the value of variables { System.out.println("name is" +name); } } public class HelloMain() { public static void main(String[] args) { Hello h1 = new Hello(); h1.display(); } }
输出:
在上面的例子中,这不是程序员定义的构造函数,因此编译器会将此程序视为:
代码:
public class Hello() { String name; Hello() //default constructor created by compiler { name = null } void display() { System.out.println("name is" +name); } } public class HelloMain() { public static void main(String[] args) { Hello h1 = new Hello(); h1.display(); } }
代码:
public DemoProgram() // class { DemoProgram() // constructor with no arguments { System.out.println("Hello this is just an example of no-arg constructor"); } public static void main(String[] args) { new DermoProgram(); } }
输出:
如上例所示,对于构造函数 DemoProgram(),没有传递任何参数,仅打印消息,因此称为无参构造函数。
参数化构造函数是我们在其中传递实参或形参的构造函数。在此构造函数中,值在创建对象时传递。
代码:
public class Animal() { int legs; String sound; Animal(int legs, String sound) // parameterized constructor { this.legs = legs; // values with get initialize of what is passed while object crea-this.sound = sound; // tion, i.e. (4, “bow bow”) } void display() // method to display the values { System.out.println("Legs are "+legs+"Sound is "+sound); } } class AnimalPlanet() { public static void main(String[] args) { Animal an = new Animal(4, "bow bow"); an.display(); } }
输出:
在上面的示例中,值 4 被分配给了腿部,字符串“bow Bow”被分配给了构造器 Animal 中的声音。因此,当调用方法 display 时,两个值都会打印在输出中。
构造函数在使用 Java 编程语言时发挥着重要作用。我们必须了解构造函数的完整概念、构造函数的各种类型、构造函数链以及用于调用父构造函数的 super() 关键字,以便根据具体场景进行工作。虽然在 Java 中使用构造函数非常简单,就像使用方法一样,但有一些具体的要点应该彻底学习。
以上是Java 中的构造函数的详细内容。更多信息请关注PHP中文网其他相关文章!