个性化阅读
专注于IT技术分析

Java构造函数

本文概述

在Java中,构造函数是一个代码块的方法。它被称为当创建类的实例。调用构造函数的时候,内存中的对象分配内存。

它是一种特殊类型的方法用于初始化对象。

每次使用新创建的对象()字,至少有一个构造函数。

它调用一个默认的构造函数,如果没有构造函数的类。在这种情况下,Java编译器默认情况下提供了一个默认的构造函数。

有两种类型的构造函数在Java:不带参数的构造函数,参数化构造函数。

注意:它被称为构造函数,因为它构造对象创建时的值。没有必要写一个类的构造函数。因为java编译器创建一个默认的构造函数没有任何如果你类。

规则创建Java构造函数

有两个规则的定义的构造函数。

  1. 构造函数的名字必须相同的类名
  2. 构造函数必须没有显式的返回类型
  3. 一个Java构造函数不能是抽象的,静态的,最终,同步

注意:我们可以使用访问修饰符,同时声明一个构造函数。它控制对象创建。换句话说,我们可以私人,保护,公共或Java中默认的构造函数。

类型的Java构造函数

在Java中有两种类型的构造函数:

  1. 默认构造函数(不带参数的构造函数)
  2. 参数化构造函数

Java的默认构造函数

构造函数被称为“默认构造函数”当它没有任何参数。

默认构造函数的语法:

<class_name>(){}

默认构造函数的例子

在本例中,我们在Bike类中创建无参数构造函数。它将在创建对象时调用。

//Java Program to create and call a default constructor
class Bike1{
//creating a default constructor
Bike1(){System.out.println("Bike is created");}
//main method
public static void main(String args[]){
//calling a default constructor
Bike1 b=new Bike1();
}
}

输出:

Bike is created

规则:如果一个类没有构造函数,编译器会自动创建一个默认的构造函数。

问一个默认的构造函数的目的是什么?

默认的构造函数是用来提供对象的默认值0,null,等等,根据不同的类型。

默认构造函数的例子显示默认值

//Let us see another example of default constructor
//which displays the default values
class Student3{
int id;
String name;
//method to display the value of id and name
void display(){System.out.println(id+" "+name);}

public static void main(String args[]){
//creating objects
Student3 s1=new Student3();
Student3 s2=new Student3();
//displaying values of the object
s1.display();
s2.display();
}
}

输出:

0 null
0 null

解说:在上面的类,你不创建任何构造函数,所以编译器为你提供了一个默认的构造函数。这里0和null值提供默认构造函数。


Java参数化构造函数

构造函数有特定数量的参数称为参数化构造函数。

为什么使用参数化构造函数?

参数化构造函数用于提供不同的价值观,不同的对象。然而,你也可以提供相同的值。

参数化构造函数的例子

在本例中,我们创建了学生类的构造函数有两个参数。我们可以拥有任意数量的参数的构造函数。

//Java Program to demonstrate the use of the parameterized constructor.
class Student4{
    int id;
    String name;
    //creating a parameterized constructor
    Student4(int i,String n){
    id = i;
    name = n;
    }
    //method to display the values
    void display(){System.out.println(id+" "+name);}
 
    public static void main(String args[]){
    //creating objects and passing values
    Student4 s1 = new Student4(111,"Karan");
    Student4 s2 = new Student4(222,"Aryan");
    //calling method to display the values of object
    s1.display();
    s2.display();
   }
}

输出:

111 Karan
222 Aryan

在Java中构造函数重载

在Java中,构造函数就像一个方法但是没有返回类型。它也可以像Java方法重载。

构造函数重载Java技术中有多个构造函数具有不同的参数列表。他们被安排在每个构造函数执行不同的任务。他们分化由编译器列表中的参数的数量和他们的类型。

构造函数重载的例子

//Java program to overload constructors
class Student5{
    int id;
    String name;
    int age;
    //creating two arg constructor
    Student5(int i,String n){
    id = i;
    name = n;
    }
    //creating three arg constructor
    Student5(int i,String n,int a){
    id = i;
    name = n;
    age=a;
    }
    void display(){System.out.println(id+" "+name+" "+age);}
 
    public static void main(String args[]){
    Student5 s1 = new Student5(111,"Karan");
    Student5 s2 = new Student5(222,"Aryan",25);
    s1.display();
    s2.display();
   }
}

输出:

111 Karan 0
222 Aryan 25

在Java构造函数和方法之间的区别

之间有许多不同的构造函数和方法。下面给出。

Java构造函数Java方法
构造函数用于初始化对象的状态。方法用于公开对象的行为。
构造函数不能有返回类型。方法必须具有返回类型。
构造函数是隐式调用的。显式地调用这个方法。
如果类中没有任何构造函数,则Java编译器提供默认构造函数。编译器在任何情况下都不提供该方法。
构造函数的名称必须与类名相同。 方法名可能与类名相同,也可能与类名不同。

Java拷贝构造函数

Java没有拷贝构造函数。然而,我们可以复制的值从一个对象到另一个类似于C拷贝构造函数。

有很多方法可以将一个对象的值复制到另一个在Java中。它们是:

  • 通过构造函数
  • 通过分配一个对象到另一个的值
  • 通过克隆()方法的对象类

在这个例子中,我们将一个对象的值复制到另一个使用Java构造函数。

//Java program to initialize the values from one object to another object.
class Student6{
    int id;
    String name;
    //constructor to initialize integer and string
    Student6(int i,String n){
    id = i;
    name = n;
    }
    //constructor to initialize another object
    Student6(Student6 s){
    id = s.id;
    name =s.name;
    }
    void display(){System.out.println(id+" "+name);}
 
    public static void main(String args[]){
    Student6 s1 = new Student6(111,"Karan");
    Student6 s2 = new Student6(s1);
    s1.display();
    s2.display();
   }
}

输出:

111 Karan
111 Karan

复制值没有构造函数

我们可以将一个对象的值复制到另一个通过分配值到另一个对象的对象。在这种情况下,没有必要创建一个构造函数。

class Student7{
    int id;
    String name;
    Student7(int i,String n){
    id = i;
    name = n;
    }
    Student7(){}
    void display(){System.out.println(id+" "+name);}
 
    public static void main(String args[]){
    Student7 s1 = new Student7(111,"Karan");
    Student7 s2 = new Student7();
    s2.id=s1.id;
    s2.name=s1.name;
    s1.display();
    s2.display();
   }
}

输出:

111 Karan
111 Karan

问)构造函数返回任何值吗?

是的,它是当前类实例(不能使用返回类型但它返回一个值)。


构造函数可以执行其他任务而不是初始化?

是的,像对象创建,启动一个线程,调用方法等。你可以在构造函数中执行任何操作执行的方法。


有构造器类在Java中吗?

是的。


构造函数类的目的是什么?

Java提供了一个构造函数类,可以使用一个构造函数在类的内部信息。它是在. lang。反映包。

赞(0)
未经允许不得转载:srcmini » Java构造函数

评论 抢沙发

评论前必须登录!