网站首页 > 精选教程 正文
Java中的构造函数作用完成对象的初始化工作,总结如下:
1.类中如果没有声明构造函数,编译器会创建一个公共无参的默认构造函数。
2.构造函数的名称必须与类名相同,大小写敏感,无返回值不能用关键字void修饰。
3.类中可以创建多个构造函数,构造函数可以是无参、有参、public、private、protected或无修饰符。
演示代码如下:
①在类中不声明构造函数
/**
* 在类中不声明构造函数,编译器会创建一个默认构造函数
*/
public class ConstructorNoDeclared {
}
②测试
/**
* 无声明构造函数的类测试
*/
@Test
public void noDeclared() {
Class<ConstructorNoDeclared> clazz = ConstructorNoDeclared.class;//无声明构造函数的类
Constructor[] conArray = clazz.getDeclaredConstructors();//获取类的所有的构造方法
for (Constructor c : conArray) {
System.out.println(c);
}
}
③执行结果
①在类中声明构造函数
/**
* 声明构造函数
*/
public class ConstructorDeclared {
/**
* 无修饰符、无参构造函数
*/
ConstructorDeclared() {
System.out.println("无修饰符、无参构造函数");
}
/**
* 一个参数的构造函数
*
* @param field1
*/
public ConstructorDeclared(String field1) {
System.out.println("一个参数的构造函数");
}
/**
* 多个参数的构造函数
*
* @param field1
* @param field2
*/
public ConstructorDeclared(String field1, String field2) {
System.out.println("多个参数的构造函数");
}
/**
* 私有的构造函数
*
* @param flag
*/
private ConstructorDeclared(boolean flag) {
System.out.println("私有的构造函数");
}
/**
* 保护的
*
* @param num
*/
protected ConstructorDeclared(Integer num) {
System.out.println("保护的构造函数");
}
}
②测试
/**
* 有声明构造函数的类测试
*/
@Test
public void declared() {
Class<ConstructorDeclared> clazz = ConstructorDeclared.class;//抽象类无声明构造函数
Constructor[] conArray = clazz.getDeclaredConstructors();//获取类的所有的构造方法
for (Constructor c : conArray) {
System.out.println(c);
}
}
③执行结果
①抽象类中不声明构造函数
/**
* 抽象类中不声明构造函数
*/
public abstract class ConstructorAbstract {
abstract void test();
}
②测试
/**
* 抽象类测试
*/
@Test
public void abstractTest() {
Class<ConstructorAbstract> clazz = ConstructorAbstract.class;//抽象类无声明构造函数
Constructor[] conArray = clazz.getDeclaredConstructors();//获取类的所有的构造方法
for (Constructor c : conArray) {
System.out.println(c);
}
}
③执行结果
猜你喜欢
- 2024-12-01 毕业五年,年薪百万,我掌握了这些JDK性能调优命令行工具
- 2024-12-01 Java:在Java中使用函数接口
- 2024-12-01 深度搞清Java语言的函数
- 2024-12-01 Java回调函数
- 2024-12-01 最详细的 Java main 函数方法解读
- 2024-12-01 Kafka高可用,高吞吐量低延迟的高并发的特性背后实现机制
- 2024-12-01 Java|jdk(命令行环境下编译和运行) + netbeans(图形界面集成工具)
- 2024-12-01 如何使用java语言求一个正整数的平方根?(自定义sqrt函数)
- 2024-12-01 Java 详细剖析关键字 static,深入全面了解
- 2024-12-01 Java 回调函数
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)