本文概述
- 类型的Java构造函数
- Java的默认构造函数
- 默认构造函数的例子
- 在Java中构造函数重载
- 在Java构造函数和方法之间的区别
- Java拷贝构造函数
- 复制值没有构造函数
它是一种特殊类型的方法用于初始化对象。
每次使用新创建的对象()字,至少有一个构造函数。
它调用一个默认的构造函数,如果没有构造函数的类。在这种情况下,Java编译器默认情况下提供了一个默认的构造函数。
有两种类型的构造函数在Java:不带参数的构造函数,参数化构造函数。
注意:它被称为构造函数,因为它构造对象创建时的值。没有必要写一个类的构造函数。因为java编译器创建一个默认的构造函数没有任何如果你类。
规则创建Java构造函数
有两个规则的定义的构造函数。
- 构造函数的名字必须相同的类名
- 构造函数必须没有显式的返回类型
- 一个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 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构造函数】Java提供了一个构造函数类,可以使用一个构造函数在类的内部信息。它是在. lang。反映包。
推荐阅读
- Java static静态关键字
- Java中的对象和类
- Java命名约定
- OOP(Java面向对象编程的概念)
- Java使用注释
- Java continue语句
- Java break语句
- Java do while循环语句
- Java if else语句