Java构造器理解

Java构造器理解转载自 https www cnblogs com grl214 p 5895854 html 目录 构造器的引入构造器的命名规则中的问题使用构造器执行初始化疑问解答一 构造器的引入理解构造器之前 首先我们需要知道 Java 中为什么要引入构造器 以及构造器的作用 假设我们每一次编写一个类都要执行一个 initialize 方法 该方法是提醒你 在使用对象之前 应首先调用 initialize 方法进

转载自https://www.cnblogs.com/grl214/p/5895854.html

目录:

构造器的引入

构造器的命名规则中的问题

使用构造器执行初始化

疑问解答

一、构造器的引入

理解构造器之前,首先我们需要知道Java中为什么要引入构造器,以及构造器的作用。假设我们每一次编写一个类都要执行一个initialize()方法,该方法是提醒你,在使用对象之前,应首先调用initialize()方法进行初始化,这就意味着每一个用户都能去执行这个方法。Java中引入构造器,确保每一个对象都得到初始化,Java在有能力操作对象之前,系统会自动调用相应的构造器,保证初始化的进行。

二、构造器的命名规则中的问题

第一:所取名字可能会与类中某个成员变量的名字发生冲突。

第二:调用构造器是编译器的责任,所以必须让编译器知道调用的是哪一个方法,所以Java采取了与类同名的方法命名构造器。

三、使用构造器执行初始化

构造器最大的用处就是在创建对象时执行初始化,当创建一个对象时,系统会为这个对象的实例进行默认的初始化。如果想改变这种默认的初始化,就可以通过自定义构造器来实现。

下面给出例子

public class Person{ public String name; public int age; //这是系统自动提供的构造器public void Person(){} //自定义构造器 public Person(String name,int age){ this.name=name; this.age=age; } public static void main(String[] args){ //使用自定义的构造器创建对象,构造器是创建对象的重要途径 Person p=new Person("xiaomin",12); System.out.println(p.age); System.out.println(p.name); } }

四、疑难解答

构造器是创建Java对象的途径,是不是说构造器完全负责Java对象的创建?

不是!

构造器的创建Java对象的重要途径,通过new关键字来调用构造器,构造器也确实返回了该类的对象,但是这个对象并不是完全由构造器来负责创建的。实际上,当程序员调用构造器时,系统会为该对象分配内存空间,并为这个对象执行默认初始化,如果这个对象已经产生了,那么这些操作在构造器之前就已经都完成了。

所以说当系统开始构造器的执行体之前,系统已经创建了一个对象,只是这个对象还不能够被外界程序访问,只能在该构造器中通过this来引用。当构造器的执行体执行结束后,这个对象作为构造器的返回值被返回,通过赋值给另一个引用类型的遍历,从而让外部程序访问。

≈构造器省略了初始代码块,和非静态字段的初始化。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229232.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午5:10
下一篇 2026年3月16日 下午5:10


相关推荐

  • 字典序输出_按姓名字典序排序

    字典序输出_按姓名字典序排序这一类的题目在面试中的算法是比较常见的,这里也自己做一个总结1.输入一个数字n,输出从1~n组成的数字的全排列,每个排列占一行,输出按照数值升序排列https://blog.csdn.net/desirepath/article/details/50447712从数组的末尾开始,首先找到第一个升序的数字对,然后交换这个数字对,然后从这个数字对开始,按照生序交换后面的所有数字。2…将1~…

    2025年7月5日
    5
  • 桶排序算法c语言_哪种排序算法最快

    桶排序算法c语言_哪种排序算法最快在前几回我们已经对冒泡排序、直接插入排序、希尔排序、选择排序、快速排序、归并排序、堆排序、计数排序做了说明分析(具体详情可在公众号历史消息中查看)。本回,将对桶排序进行相关说明分析。一、排序算法系列目录说明冒泡排序(BubbleSort)插入排序(InsertionSort)希尔排序(ShellSort)选择排序(SelectionSort)快速排序(Quick…

    2025年8月9日
    5
  • touchstart和click 自动区分

    touchstart和click 自动区分varclickEvent=(function(){if(‘ontouchstart’indocument.documentElement===true)return’touchstart’;elsereturn’click’;})();转载于:https://www.cnblogs.com/gaidalou/p/9927885.html

    2022年6月19日
    29
  • 描述编程语言的BNF

    描述编程语言的BNF转 来自维基百科 BNF 规定是推导规则 产生式 的集合 写为 lt 符号 gt lt 使用符号的表达式 gt 这里的 lt 符号 gt 是非终结符 而表达式由一个符号序列 或用指示选择的竖杠 分隔的多个符号序列构成 每个符号序列整体都是左端的符号的一种可能的替代 从未在左端出现的符号叫做终结符 基本原理 nbsp nbsp nbsp nbsp nbsp BNF 类似一种数学游戏 从一个符号开始 叫做起始标志 实例

    2026年3月19日
    2
  • androidX_android targetSdkVersion

    androidX_android targetSdkVersionAndroidX简介:Android9.0(APIlevel28)发布时,AndroidX也作为一个新的支持库发布出来了。AndroidX时Jetpack的一部分,它包含了现有的支持库和最新的

    2022年8月6日
    5
  • 一文搞定 Qwen3-Coder 接入电脑终端:全流程保姆级教程(附实战演示)

    一文搞定 Qwen3-Coder 接入电脑终端:全流程保姆级教程(附实战演示)

    2026年3月12日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号