网站首页 > java教程 正文
1.什么是构造函数?
构造函数用于初始化对象的状态。与方法类似,构造函数还包含在创建对象时执行的语句集合(即指令)。
2.我们有Java中的复制构造函数吗?
像C ++一样,Java也支持拷贝构造函数。但是,与C ++不同的是,如果您不写自己的Java,则不会创建默认的拷贝构造函数。
要将一个对象的值复制到另一个对象中,可以使用:构造函数
将一个对象的值分配给另一个对象
Object类的clone()方法
3.什么是构造器链接?
构造函数链是从一个构造函数调用另一个构造函数的技术。this()用于调用相同的类构造函数,其中super()用于调用超类构造函数。
// Java program to illustrate Constructor Chaining // within same class Using this() keyword class Temp { // default constructor 1 // default constructor will call another constructor // using this keyword from same class Temp() { // calls constructor 2 this(5); System.out.println("The Default constructor"); } // parameterized constructor 2 Temp(int x) { // calls constructor 3 this(5, 15); System.out.println(x); } // parameterized constructor 3 Temp(int x, int y) { System.out.println(x * y); } public static void main(String args[]) { // invokes default constructor first new Temp(); } }
4.我们可以从超类构造函数中调用子类构造函数吗?
不。在java中没有办法从超类构造函数中调用子类构造函数。
5.如果为构造函数保留返回类型会发生什么?
理想情况下,构造函数不能有返回类型。根据定义,如果一个方法有一个返回类型,它不是一个构造函数。它将被视为一种常规方法。但是,编译器会发出警告,指出该方法具有构造函数名称。示例:
class GfG { int GfG() { return 0; // Warning for the return type } }
6.什么是无参数构造函数?
不带参数的构造函数被称为no-arg构造函数。java中的默认构造函数始终是一个无参数构造函数。
class GfG { public GfG() { //No-arg constructor } }
7.无参构造函数与默认构造函数不同的地方?
如果一个类不包含构造函数声明,那么隐式声明一个没有形式参数且没有throws子句的默认构造函数。
如果声明的类是原始类Object,则默认构造函数具有空的主体。否则,默认构造函数只是简单地调用没有参数的超类构造函数。
8.什么是私人构造函数,它们在哪里使用?
像任何方法一样,我们可以为构造函数提供访问说明符。如果它是私人的,那么它只能在课堂内进行访问。
我们使用私有构造函数的主要场景是:内部构造器链接
单件类设计模式
9.我们什么时候需要构造函数重载?
有时需要用不同的方式初始化一个对象。这可以使用构造函数重载来完成。不同的构造函数可以通过实现不同的代码行来完成不同的工作,并根据传递的参数的类型和数量来调用。
根据情况,在重载构造函数中使用特定数量的参数调用构造函数。
- 上一篇: 编程语言Java如何创建对象,看完秒懂
- 下一篇: 为什么不允许使用 Java 静态构造函数?
猜你喜欢
- 2024-10-17 Java|剖析类内的五类成员:属性、方法、构造器、代码块、内部类
- 2024-10-17 C++|构造、析构、成员(静态、非静态)函数、友元、全局函数
- 2024-10-17 JavaScript构造函数和原型:构造函数和原型 原创
- 2024-10-17 灵魂拷问:创建 Java 字符串,用""还是构造函数
- 2024-10-17 dart系列之:dart类中的构造函数(dart命名构造函数)
- 2024-10-17 Java面试题#构造函数和Setter哪种DI方式更好
- 2024-10-17 「php」construct() 函数介绍与使用方法详解
- 2024-10-17 为什么不允许使用 Java 静态构造函数?
- 2024-10-17 编程语言Java如何创建对象,看完秒懂
- 2024-10-17 【教3妹学编程-java】详解父子类变量、代码块、构造函数执行顺序
你 发表评论:
欢迎- 最近发表
-
- 如何优雅地记录操作日志?_操作日志怎么实现
- 开发利器丨如何使用ELK设计微服务中的日志收集方案?
- Java应用日志如何与Jaeger的trace关联
- Springboot强大的日志功能你真的了解吗?这些功能你肯定不知道
- 深入探索 Spring Boot3 中日志的自定义封装处理操作
- SpringBoot+Kafka+ELK 完成海量日志收集(超详细)
- SpringBoot中统一日志管理_springboot日志每天一个文件
- 16.3K Star!简洁高效的Java权限认证与会话管理框架——Sa-Token
- 27 | API网关:系统的门面要如何做呢?
- 微服务网关—Zuul1.0和2.0我们该如何选择?
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)