【Java编程教程】详解Java 构造函数

这篇具有很好参考价值的文章主要介绍了【Java编程教程】详解Java 构造函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Java中,构造函数是类似于方法的代码块。它在创建类的实例时被调用。在调用构造函数时,对象的内存是在内存中分配的。

它是一种特殊类型的方法,用于初始化对象。

每次使用 new() 关键字创建对象时,至少会调用一个构造函数。

如果类中没有可用的构造函数,它会调用默认构造函数。在这种情况下,Java 编译器默认提供默认构造函数。

Java 中有两种类型的构造函数:无参数构造函数和参数化构造函数。

注意:它被称为构造函数,因为它在对象创建时构造值。没有必要为类编写构造函数。这是因为如果您的类没有默认构造函数,java 编译器会创建一个默认构造函数。

# 创建 Java 构造函数的规则

为构造函数定义了两个规则。

  1. 构造函数名必须与其类名相同

  2. 构造函数必须没有明确的返回类型

  3. Java 构造函数不能是抽象的、静态的、最终的和同步的

注意:我们可以在声明构造函数时使用访问修饰符。它控制对象的创建。换句话说,我们可以在 Java 中拥有 private、protected、public 或 default 构造函数。

# Java构造函数的类型

Java 中有两种类型的构造函数:

  1. 默认构造函数(无参数构造函数)

  2. 参数化构造函数

# Java 默认构造函数

当构造函数没有任何参数时,它被称为“默认构造函数”。

默认构造函数的语法:


<类名>(){}

默认构造函数示例

在此示例中,我们在 Bike 类中创建无参数构造函数。它将在对象创建时被调用。


//Java 程序创建并调用默认构造函数  
class Bike1{  
//创建默认构造函数 
Bike1(){System.out.println("自行车已创建");}  
//主要方法 
public static void main(String args[]){  
//调用默认构造函数 
Bike1 b=new Bike1();  
}  
}

输出:


自行车已创建

规则:如果类中没有构造函数,编译器会自动创建一个默认构造函数。

Q) 默认构造函数的目的是什么?

默认构造函数用于为对象提供默认值,如 0、null 等,具体取决于类型。

显示默认值的默认构造函数示例


//让我们看另一个默认构造函数的例子 
//显示默认值 
class Student3{  
int id;  
String name;  
//显示id和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();  
}  
}

输出:


0 null
0 null

说明:在上面的类中,您没有创建任何构造函数,因此编译器为您提供了一个默认构造函数。这里 0 和 null 值由默认构造函数提供。

Java参数化构造函数

具有特定数量参数的构造函数称为参数化构造函数。

为什么要使用参数化构造函数?

参数化构造函数用于为不同的对象提供不同的值。但是,您也可以提供相同的值。

参数化构造函数示例

在此示例中,我们创建了具有两个参数的 Student 类的构造函数。我们可以在构造函数中有任意数量的参数。


//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,"小卡");  
    Student4 s2 = new Student4(222,"小安");  
    //调用方法显示对象的值
    s1.display();  
    s2.display();  
   }  
}

输出:


111 小卡
222 小安

# Java 中的构造函数重载

在 Java 中,构造函数就像一个方法,但没有返回类型。它也可以像 Java 方法一样被重载。

Java 中的构造函数重载是一种拥有多个具有不同参数列表的构造函数的技术。它们的排列方式使每个构造函数执行不同的任务。编译器根据列表中参数的数量及其类型来区分它们。

构造函数重载的例子

//Java程序重载构造函数 
class Student5{  
    int id;  
    String name;  
    int age;  
    //创建两个arg构造函
    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,"小卡");  
    Student5 s2 = new Student5(222,"小安",25);  
    s1.display();  
    s2.display();  
   }  
}

输出:


111 小卡 null
222 小安 25

# Java中构造函数和方法的区别

构造函数和方法之间存在许多差异。它们在下面给出。

Java构造函数 方法
构造函数用于初始化对象的状态。 方法用于暴露对象的行为。
构造函数不能有返回类型。 方法必须有返回类型。
构造函数被隐式调用。 该方法被显式调用。
如果类中没有任何构造函数,Java 编译器会提供默认构造函数。 在任何情况下,编译器都不会提供该方法。
构造函数名必须与类名相同。 方法名可能与类名相同,也可能不同。

# Java 复制构造函数

Java 中没有复制构造函数。但是,我们可以将值从一个对象复制到另一个对象,就像 C++ 中的复制构造函数一样。

在 Java 中有多种方法可以将一个对象的值复制到另一个对象中。他们是:

  • 通过构造函数

  • 通过将一个对象的值分配给另一个对象

  • 通过 Object 类的 clone() 方法

在此示例中,我们将使用 Java 构造函数将一个对象的值复制到另一个对象中。


//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,"小卡");  
    Student6 s2 = new Student6(s1);  
    s1.display();  
    s2.display();  
   }  
}

输出:


111小卡
111小卡

问)构造函数是否返回任何值?

是的,它是当前的类实例(你不能使用返回类型但它返回一个值)。

构造函数可以执行其他任务而不是初始化吗?

是的,像创建对象、启动线程、调用方法等。您可以像在方法中执行操作一样在构造函数中执行任何操作。

Java中有构造函数类吗?

有的。

Constructor类的目的是什么?

Java提供了一个Constructor类,可以用来获取类中构造函数的内部信息。它位于 java.lang.reflect 包中。文章来源地址https://www.toymoban.com/news/detail-735952.html

到了这里,关于【Java编程教程】详解Java 构造函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java编程教程】详解 Java continue 继续循环语句

    当需要立即跳转到循环的下一次迭代时,在循环控制结构中使用 continue 语句。它可以与 for 循环或 while 循环一起使用。 Java continue 语句用于继续循环。它继续程序的当前流程并跳过指定条件下的剩余代码。在内部循环的情况下,它仅继续内部循环。 我们可以在所有类型的循

    2024年02月04日
    浏览(45)
  • Java课题笔记~ Servlet编程

    (1)什么是Servlet Servlet是基于Java语言的Web编程技术,部署在服务器端的Web容器里,获取客户端的访问请求,并根据请求生成响应信息返回给客户端。 创建Servlet的方式,有 如下图:一般创建Servlet都是通过继承HttpServlet来实现,如图中的HelloServlet。 (类图快捷键:Ctrl + Alt + U)

    2024年02月13日
    浏览(30)
  • 如何在 Java 中从另一个构造函数调用一个构造函数?

    是否可以从另一个(在同一个类中,而不是从子类中)调用构造函数?如果是怎么办?调用另一个构造函数的最佳方法是什么(如果有几种方法可以做到)? huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求 对的,这是可能的: 要链接到特定的超类构造函数而不是同一

    2024年02月03日
    浏览(51)
  • 【Java基础教程】(七)面向对象篇 · 第一讲:上干货!面向对象的特性、类与对象、内存结构引用分析、垃圾收集器 GC处理、封装性详解、构造方法、匿名对象、简单 Java 类~

    程序是将数据和逻辑封装在一起的代码段。在Java中,方法是常用的代码段封装方式。然而,在Java中,方法必须存在于一个类中才能使用。因此,我们将进入本章的核心内容——面向对象编程。 利用面向对象设计的程序可以实现代码的重用,并方便开发者进行项目维护。面向

    2024年02月13日
    浏览(40)
  • 【JAVA杂货铺】一文带你走进面向对象编程的构造方法 | Java| 面向对象编程 | (中)

    🌈个人主页:  Aileen_0v0 🔥系列专栏: Java学习系列专栏 💫个人格言: \\\"没有罗马,那就自己创造罗马~\\\"   目录 回顾  构造方法  this 面试题 构造方法的类型  下节预告 代码块  之前我们学习了什么是类  什么是对象  什么是面向对象编程 定义类   构造方法 :它的方法名

    2024年02月05日
    浏览(50)
  • 详解JAVA中的构造方法

    目录 一、构造方法的概念 二、构造方法的特 性         构造方法(也称为构造器)是一个特殊的成员方法, 名字必须与类名相同,在创建对象时由编译器自动调用,并且在整个对象的生命周期内只调用一次。 代码演示: 运行结果 : 注意:           构造方法的作

    2023年04月08日
    浏览(45)
  • java中构造函数在继承中的调用顺序是什么?

    在Java中,当创建子类对象时,构造函数的调用顺序遵循以下规则: 父类的静态变量和静态初始化块 :首先,Java会加载父类,并执行父类中的静态变量初始化和静态初始化块(静态代码块)。这只会在类首次被加载到JVM时执行一次。 子类的静态变量和静态初始化块 :接下来

    2024年04月10日
    浏览(41)
  • Java8函数式接口, 方法引用, 构造器引用, 数组引用

    只包含一个抽象方法的接口,称为函数式接口。 你可以通过Lambda表达式来创建该接口的对象。(若Lambda表达式抛出一个受检异常(即:非运行时异常),那么该异常需要在目标接口的抽象方法上进行声明 我们可以在一个接口上使用 @Functionallnterface 注解,这样做可以检查它是

    2024年02月05日
    浏览(55)
  • Java中构造器详解(类的五成员之三:构造器)

    先看文章目录,大致了解知识点结构,直接点击文章目录可以跳转到文章指定位置。 Java的基本单位是类,类中包含五个部分,这篇写的是 构造器 。 (1)变量 (2)方法 (3)构造器 (4)初始化块 (5)内部类 ①构造器是处于Java类中的一个方法,最大的作用创建对象时执行

    2024年02月08日
    浏览(42)
  • 11、Java 变量作用域、构造方法官方教程

    Java 中的变量有3种: 📖 ① 全局变量:被定义在类中( 成员变量 ) 📖 ② 局部变量: 被定义在成员方法、代码块、静态代码块中定义的变量 📖 ③ 参数:方法声明中的变量 There are several kinds of variables (变量): 📋 Member variables (成员变量) in a class:these are called fields(属

    2023年04月08日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包