构造器

java中的构造方法是一种特殊的方法,用于初始化对象。java构造函数在对象创建时被调用。它构造值,即提供对象的数据。

创建java构造函数的规则
构造函数基本上定义了两个规则。分别如下:

构造函数名必须与其类名称相同
构造函数必须没有显式返回类型
Java构造函数类型
有两种类型的构造函数

默认构造函数(无参数构造函数)
参数化构造函数
1.Java默认构造函数
没有参数的构造函数称为默认构造函数。默认构造函数的语法如下:
< class_name>(){}
1
默认构造函数的示例:
在这个例子中,在Bike类中创建了无参数(no-arg)构造函数。它将在对象创建时被调用。

class Bike1{
Bike1(){
System.out.println(“Bike is created”);
}
public static void main(String args[]) {
Bike1 b = new Bike1();
}
1
2
3
4
5
6
7
默认构造函数的目的是根据类型为对象提供默认值,如:0,null等。
显示默认值的默认构造函数示例

class Student3 {
int id;
String name;

void display() {
    System.out.println(id + " " + name);
}

public static void main(String args[]) {
    Student3 s1 = new Student3();
    Student3 s2 = new Student3();
    s1.display();
    s2.display();
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
在上面代码中我们并没有为其提供构造函数,但是我们在输出是会发现其是有值的,这就是在上面的类中,代码中并没有创建任何构造函数,但编译器自动提供了一个默认构造函数。默认构造函数分别为字段:id 和 name 分别提供了0和null值。
2.Java参数化构造函数
参数化构造函数用于为不同对象提供不同初始化的值。
示例:
在构造函数中我们可以添加任意多少的参数。

class Student4 {
int id;
String name;

Student4(int i, String n) {
    id = i;
    name = n;
}

void display() {
    System.out.println(id + " " + name);
}

public static void main(String args[]) {
    Student4 s1 = new Student4(111, "Karan");
    Student4 s2 = new Student4(222, "Aryan");
    s1.display();
    s2.display();
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Java构造函数重载
构造方法重载是Java中的一种技术,一个类可以有任何数量的参数列表不同的构造函数。编译器通过构造函数参数列表中的参数数量及其类型来区分这些构造函数。
示例:

class Student5 {
int id;
String name;
int age;

Student5(int i, String n) {
    id = i;
    name = n;
}

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();
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
java构造函数和方法之间的区别

Java拷贝构造函数
在Java中没有复制构造函数。但是可以将一个对象的值复制到另一个中,就像C++中的复制构造函数,在java中有很多方法可以将一个对象的值复制到另一个对象中。它们分别是:

通过构造函数
通过将一个对象的值分配给另一个
通过Object类的clone()方法
在下面的例子中我们将通过Java的构造函数将一个对象的值赋值到另一个对象中。
class Student6 {
int id;
String name;

Student6(int i, String n) {
    id = i;
    name = n;
}

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传入
    s1.display();
    s2.display();
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
将对象值分配给另一个对象
可以通过将对象值分配给另一个对象,将一个对象的值复制到另一个对象中。 在这种情况下,不需要创建构造函数。

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();
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
注意:

构造函数返回当前类的实例(不能指定返回值类型,但它会返回一个值)。
在构造函数中我们不仅可以实现赋值,还可以实现比如:对象创建、启动线程、调用方法等。可以像在方法中执行的任何操作一样,在构造函数中也可以做到。
————————————————
版权声明:本文为CSDN博主「li_jeremy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/li_jeremy/article/details/79294699

本项目是一个基于SSM(Spring+SpringMVC+MyBatis)框架和Vue.js前端技术的大学生第二课堂系统,旨在为大学生提供一个便捷、高效的学习和实践平台。项目包含了完整的数据库设计、后端Java代码实现以及前端Vue.js页面展示,适合计算机相关专业的毕设学生和需要进行项目实战练习的Java学习者。 在功能方面,系统主要实现了以下几个模块:用户管理、课程管理、活动管理、成绩管理和通知公告。用户管理模块支持学生和教师的注册、登录及权限管理;课程管理模块允许教师上传课程资料、设置课程时间,并由学生进行选课;活动管理模块提供了活动发布、报名和签到功能,鼓励学生参与课外实践活动;成绩管理模块则用于记录和查询学生的课程成绩和活动参与情况;通知公告模块则实时发布学校或班级的最新通知和公告。 技术实现上,后端采用SSM框架进行开发,Spring负责业务逻辑层,SpringMVC处理Web请求,MyBatis进行数据库操作,确保了系统的稳定性和扩展性。前端则使用Vue.js框架,结合Axios进行数据请求,实现了前后端分离,提升了用户体验和开发效率。 该项目不仅提供了完整的源代码和相关文档,还包括了详细的数据库设计文档和项目部署指南,为学习和实践提供了便利。对于基础较好的学习者,可以根据自己的需求在此基础上进行功能扩展和优化,进一步提升自己的技术水平和项目实战能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值