首页 > Java > java教程 > 正文

Java 中的构造函数

WBOY
发布: 2024-08-30 15:26:34
原创
311 人浏览过

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 中的构造函数如何工作?

为了了解 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);
}
}
登录后复制

输出:

Java 中的构造函数

在上面的例子中,我们有实例变量(类变量)。 ​roll no ​和​name ​和​st ​是Student类创建的对象的名称。创建对象时,它会调用构造函数 Student 并初始化类变量,其中 roll no 值为 12,名称为“Ananya”;否则,默认值(例如 rollno 的 0 和名称的 null)将被分配给变量。因此,在分配值并打印它们之后,学生姓名将打印为 Ananya,学生卷号将打印为 12。

Java 中的构造函数类型

Java中有2种基于参数的构造函数:

1.非参数化/无参数构造函数

​当我们不在构造函数中传递参数时,该构造函数称为非参数化或无参数构造函数。当程序员在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();
}
}
登录后复制

输出:
Java 中的构造函数

在上面的例子中,这不是程序员定义的构造函数,因此编译器会将此程序视为:

代码:

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();
}
}
登录后复制

输出:

Java 中的构造函数

如上例所示,对于构造函数 DemoProgram(),没有传递任何参数,仅打印消息,因此称为无参构造函数。

2.参数化构造函数​

参数化构造函数是我们在其中传递实参或形参的构造函数。在此构造函数中,值在创建对象时传递。

示例(参数化构造函数)

代码:

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();
}
}
登录后复制

输出:

Java 中的构造函数

在上面的示例中,值 4 被分配给了腿部,字符串“bow Bow”被分配给了构造器 Animal 中的声音。因此,当调用方法 display 时,两个值都会打印在输出中。

要记住的重要要点

  • 每个类都有一个构造函数,无论程序员是否创建它。
  • 构造函数名称应与类名称相同。
  • 与方法不同,构造函数没有返回类型。
  • this() 和 super() 关键字必须是构造函数中的第一个语句。
  • 与方法一样,构造函数也可以重载。
  • 构造函数不能被重写。
  • 一个构造函数可以使用关键字 this() 调用同一类的另一个构造函数。
  • 可以在构造函数名称之前应用访问说明符/修饰符,以声明其在类中的范围。
  • 在 Java 中,构造函数永远不可能是静态的、最终的、抽象的和同步的。

结论

构造函数在使用 Java 编程语言时发挥着重要作用。我们必须了解构造函数的完整概念、构造函数的各种类型、构造函数链以及用于调用父构造函数的 super() 关键字,以便根据具体场景进行工作。虽然在 Java 中使用构造函数非常简单,就像使用方法一样,但有一些具体的要点应该彻底学习。

以上是Java 中的构造函数的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!