码迷,mamicode.com
首页 > 其他好文 > 详细

构造器

时间:2019-03-22 16:55:02      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:init   sys   完成   规则   ati   操作   外部   自动调用   创建   

 一、构造器的引入

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

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

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

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

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

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

下面给出自定义构造器例子,方便读者理解:

 1 public class Person {

 2     public String name;

 3     public int age;

 4

 5     // 这是系统自动提供的构造器public void Person(){}

 6     // 自定义构造器

 7     public Person(String name, int age) {

 8         this.name = name;

 9         this.age = age;

10     }

12     public static void main(String[] args) {

13         // 使用自定义的构造器创建对象(构造器是创建对象的重要途径)

14         Person p = new Person("小明", 12);

15         System.out.println(p.age);

16         System.out.println(p.name);

17     }

18 }

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

不是,构造器是创建java对象的途径,通过new关键字来调用构造器,构造器也确实返会了该类的对象,但这个对象并不是完全由构造器创建的。实际上程序在调用构造器时,系统为该对象分配内存空间,并为对象执行默认的初始化,如果这个对象已经产生了,那么这些操作在执行构造器之前已经都完成了。所以系统在执行构造器之前已经创建了一个对象,只是这个程序还不能被外界访问,只能在构造器中通过this来引用。当构造器执行体执行结束后,这个对象做为构造器的返回值返回,通过赋值给另外一个引用类型的变量,从而让外部程序访问。

 

构造器

标签:init   sys   完成   规则   ati   操作   外部   自动调用   创建   

原文地址:https://www.cnblogs.com/Z12015428/p/9433901.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!