在Java中,构造方法是类似于方法的代码块。创建类的实例时调用它。在调用构造方法时,将在内存中分配对象的内存。
构造方法是一种特殊的方法,用于初始化对象。
每次使用new() 关键字创建对象时,都会至少调用一个构造方法。
如果类中没有可用的构造方法,它将调用默认构造方法。在这种情况下,Java编译器默认提供默认的构造方法。
Java中有两种类型的构造方法:无参构造方法
和 带参构造方法
。
注意:之所以称为构造方法,是因为它在创建对象时构造值。不必为类编写构造方法。这是因为如果您的类没有构造方法,则Java编译器会创建一个默认构造方法。
1 创建Java构造方法的规则
构造方法的定义有两个规则:
- 构造方法名称必须与其类名称相同
- 构造方法不能声明返回类型
- 构造方法不能是抽象的(abstract),静态的(static),最终的(final)和同步的(synchronized)。
注意:我们可以在声明构造方法时使用访问修饰符。它用于控制对象的创建。换句话说,我们可以在Java定义private,protected,public或default修饰的构造方法。
2 Java构造方法的类型
Java有两种类型的构造方法:
- 无参构造方法(默认构造方法)
- 带参构造方法
3 Java无参构造方法
没有任何参数的构造方法称为“无参构造函数”或者“默认构造方法”。
3.1 无参构造方法语法
<class_name>(){}
3.2 无参构造方法示例
/**
* https://www.jhelp.net
* 创建和调用无参构造方法的实例
*/
class Person{
//创建无参构造
Person(){
System.out.println("Person is created");
}
//主方法
public static void main(String args[]){
//调用无参构造方法
Person b=new Person();
}
}
输出结果:
Person is created
注意:如果类中没有构造方法,则编译器会自动创建一个默认无参的构造方法。
4 Java带参构造方法
包含数量参数的构造方法称为带参构造方法。
4.1 为什么要使用带参数构造方法
带参构造方法用于为不同的对象设置不同的值。当然,你也可以提供相同的值。
4.2 带参构造方法示例
在下面示例中,我们创建了具有两个参数的Student类的构造方法。构造方法中可以有任意数量的参数。
/**
* https://www.jhelp.net
*
* 创建并使用带参的构造方法
*/
class Person{
int id;
String name;
//创建带参构造方法
Person(int i,String n){
id = i;
name = n;
}
//打印对象数据的方法
void display(){System.out.println(id+" "+name);}
public static void main(String args[]){
//创建对象并给对象赋值
Person s1 = Person Student4(111,"张三");
Person s2 = new Person(222,"李四");
//调用方法,打印对象数据
s1.display();
s2.display();
}
}
输出结果:
111 张三
222 李四
5 Java构造方法重载
在Java中,构造方法就像普通方法一样,但是没有返回类型。它也可以像Java方法一样重载。
Java中的构造方法重载是一种具有不同参数列表的构造方法的技术。它们的排列方式使每个构造方法执行不同的任务。编译器通过列表中的参数数量及其类型来区分它们。
5.1 构造方法重载的示例
/**
* https://www.jhelp.net
*
* 演示java的构造方法重载
*/
class Person{
int id;
String name;
int age;
//创建两个参数的构造方法
Person(int i,String n){
id = i;
name = n;
}
//创建三个参数的构造方法
Person(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[]){
Person s1 = new Person(111,"张三");
Person s2 = new Person(222,"李四",25);
s1.display();
s2.display();
}
}
输出结果为:
111 张三 0
222 李四 25
6 Java的构造方法和普通方法的区别
构造方法和普通方法之间还有有许多差异的,下面列出了它们的区别。
Java构造方法 | Java普通方法 |
---|---|
构造方法用于初始化对象的状态。 | 普通方法用于公开对象的行为。 |
构造方法不能定义返回类型。 | 普通方法必须具有返回类型。 |
构造方法被隐式调用。 | 普通方法被显式调用。 |
如果您你的类中没有任何构造方法,则Java编译器会提供默认构造方法。 | 普通方法在任何情况下都不由编译器提供。 |
构造方法名称必须与类名称相同。 | 普通方法名称可以与类名称相同,也可以不同。 |
需要相关例子程序的,可以加关注微信公众号:技术老男孩。加我微信
本站推荐
-
1249
-
1039
-
597
-
512
-
491