首页 > Java > java教程 > Java 构造函数

Java 构造函数

DDD
发布: 2025-01-06 03:47:40
原创
1044 人浏览过

Java 构造函数:

Java 构造函数或 Java 中的构造函数是用于在程序中构造某些内容的术语。 Java中的构造函数是一种特殊的方法,用于初始化对象。创建类的对象时会调用构造函数。它可用于设置对象属性的初始值。

Java 中的构造函数是什么?:

在Java中,构造函数是类似于方法的代码块。当创建类的实例时调用它。调用构造函数时,会在内存中分配对象的内存。它是一种特殊类型的方法,用于初始化对象。每次使用 new() 关键字创建对象时,都会至少调用一个构造函数。

了解如何有效地使用构造函数可以显着提高您的 Java 编程技能,尤其是在处理复杂的应用程序时。掌握构造函数的细微差别对于构建可扩展和可维护的软件至关重要。

Java 构造函数示例:

// Driver Class
class Geeks {

    // Constructor
    Geeks()
    {
        super();
        System.out.println("Constructor Called");
    }

    // main function
    public static void main(String[] args)
    {
        Geeks geek = new Geeks();
    }
}
登录后复制
登录后复制

** Java 构造函数与 Java 方法有何不同?**

1.构造函数必须与定义它的类具有相同的名称,这对于Java中的方法来说不是必需的。
2.构造函数不返回任何类型,而方法有返回类型,如果不返回任何值,则返回 void。
3.构造函数在对象创建时仅被调用一次,而方法可以被调用任意多次。

什么时候调用 Java 构造函数?

每次使用 new() 关键字创建对象时,都会调用至少一个构造函数(可以是默认构造函数)来为同一类的数据成员分配初始值。构造函数的编写规则如下:

1.类的构造函数必须与其所在的类同名。
2.Java中的构造函数不能是abstract、final、static或Synchronized。
3.可以在构造函数声明中使用访问修饰符来控制其访问权限,即哪个其他类可以调用该构造函数。

Java 中的构造函数类型(TBD)

现在是讨论构造函数类型的正确时机,因此 Java 中的构造函数主要分为以下三种类型:

Java Constructors
3.复制构造函数

参考:https://www.geeksforgeeks.org/constructors-in-java/

Java 中的构造函数重载:

在Java中,我们可以像方法一样重载构造函数。构造函数重载可以定义为具有多个具有不同参数的构造函数的概念,以便每个构造函数可以执行不同的任务。

这里,我们需要了解构造函数重载的目的。有时,我们需要使用多个构造函数来初始化类的不同值。

我们还必须注意到,当我们在类中不使用任何构造函数时,java 编译器会调用默认构造函数。但是,如果我们在类中使用了任何构造函数,无论它是默认构造函数还是参数化构造函数,都不会调用默认构造函数。在这种情况下,java 编译器会抛出异常,指出构造函数未定义。

在构造函数重载中使用 this ():

但是,我们可以在构造函数中使用 this 关键字,它可以用来调用同一个类的另一个构造函数。

示例

// Driver Class
class Geeks {

    // Constructor
    Geeks()
    {
        super();
        System.out.println("Constructor Called");
    }

    // main function
    public static void main(String[] args)
    {
        Geeks geek = new Geeks();
    }
}
登录后复制
登录后复制

参考:https://www.javatpoint.com/constructor-overloading-in-java

节目:

    public class Student {  
    //instance variables of the class  
    int id,passoutYear;  
    String name,contactNo,collegeName;  

    Student(String contactNo, String collegeName, int passoutYear){  
    this.contactNo = contactNo;  
    this.collegeName = collegeName;  
    this.passoutYear = passoutYear;  
    }  

    Student(int id, String name){  
    this("9899234455", "IIT Kanpur", 2018);  
    this.id = id;  
    this.name = name;  
    }  

    public static void main(String[] args) {  
    //object creation  
    Student s = new Student(101, "John");  
    System.out.println("Printing Student Information: \n");  
    System.out.println("Name: "+s.name+"\nId: "+s.id+"\nContact No.: "+s.contactNo+"\nCollege Name: "+s.contactNo+"\nPassing Year: "+s.passoutYear);  
    }  
    }  
登录后复制

输出:

public class SuperMarket
{
//class specific
static String name = "SB SuperMarket"; 
static int doorNo = 10; 
static boolean open = true; 
//non-static ---> Instance specific
String product_name; 
int price, discount; 

SuperMarket(String product_name, int price, int discount)
{
this.product_name = product_name; 
this.price = price; 
this.discount = discount; 
}

public static void main(String[] args)
{
SuperMarket product1 = new SuperMarket("cinthol", 22,2); 
SuperMarket product2 = new SuperMarket("biscuits",30,5);
SuperMarket product3 = new SuperMarket("cake",10,1); 
product1.sell();
product2.sell(); 
product3.sell();
product2.return_product(); 

}
public void return_product()
{
System.out.println("returning "+product_name);
}
public void sell()
{
System.out.println(product_name); 
System.out.println(price);
System.out.println(discount);
}
}

登录后复制

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

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板