在java中,构造器是个很重要的东西,在每次调用类的时候我们都会用到构造器,比如说
,请注意,new Car()..它就使用了构造器,当我们将这个对象实例化的时候jvm会自动调用其构造方法.(对象的实例化就是指创建一个对象 比如 Car c = new Car() 这就是实例化对象)
然后,我在简单的解释下构造器....构造器我们可以理解成它就是一个方法,用来初始化类中数据....至于为什么要使用构造器,还有构造器的用处我会在下文中说
首先,每当我们抽象完一个类后,这个类会自动生成一个(隐式)默认的空构造器...
如图我们声明一个Car类,如果我们没有手动声明构造方法的话,java语言会自动为我们声明一个空参数类型的构造方法.就是图片中的Car(){}.当然我这里吧Car(){}这个构造方法写出来是为了让其更直观的体现,在举个例子 Person p = new Person();那么这个Person对象的构造方法是什么呢?大家应该知道了..
没错..这里的Person(){}就是这个Person类的构造方法..
那么构造函数的用处呢,这里就带大家了解一下.看下图
我在这个构造器里面添加了一个输出语句.让我们看看运行结果
之所以会有这样的结果,是因为当Car这个对象被new(创建)出来后,jvm会自动调用其构造方法,而Car这个对象的构造方法就是
通过这个例子,应该能体会到一点构造器的用法了吧,Car c = new Car()中我们使用的是一个无参数的构造函数,那么,如果我们想要参数呢.比如说Car类里面拥有一个Color属性和Count属性,我们想在调用创建这个对象的时候就将其初始化该怎么办呢?
这个时候我们只需要在重新定义一个构造方法,让我们能在创建对象的时候顺便初始化属性(赋值),上图
发现没,我在原来是空的括号里面加了两个参数,一个String类型的变量以及一个int类型的变量,那么这两个变量有什么作用呢?不要着急.我先解释一下this的意思.○( ^皿^)っHiahia…
this关键字可以指代对象.this.color指的就是这个对象的color属性.怎么.看不懂吗..没事儿.马上解释......
Car c = new Car("红色",4) 这是我们创建对象的语句,上上图的this.color我们可以直接当成c.color,this跟c差不多,代表的都是这个对象的地址.this.color顾名思义就是:这个对象的color属性.
好了,让我们回过头来,我们之前不是在构造方法中声明了两个参数吗?一个color 一个count,现在我们就使用它们,我先画个图...嘿嘿
其实说白了..这就是一个赋值的过程..应该发现了吧.....String color = "red" int count = 4.
this.color = color 估计很多新手都被这句搞蒙了...这里只要这样想就OK了..this.color当成c.color.... color就当成"red"(根据上文..)就OK了 this.count也是一样的理解
好了让我们将程序运行一次
发现没.现在创建对象调用的就是我们定义的构造方法了...构造方法还是挺简单的....
对了,强调一点.创建对象时传参数一定要与构造函数想匹配...否则就会报错..比如会出现以下错误:The constructor Car(String) is undefined 找不到相应的构造函数
要是我说的有什么错误的地方.欢迎指出.也可以提问