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 中的构造函数主要分为以下三种类型:
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中文网其他相关文章!