在java中,构造器是个很重要的东西,在每次调用类的时候我们都会用到构造器,比如说

java 类构造器的注解_java 类构造器的注解

,请注意,new Car()..它就使用了构造器,当我们将这个对象实例化的时候jvm会自动调用其构造方法.(对象的实例化就是指创建一个对象 比如 Car c = new Car() 这就是实例化对象)

然后,我在简单的解释下构造器....构造器我们可以理解成它就是一个方法,用来初始化类中数据....至于为什么要使用构造器,还有构造器的用处我会在下文中说

首先,每当我们抽象完一个类后,这个类会自动生成一个(隐式)默认的空构造器...

java 类构造器的注解_构造器_02

如图我们声明一个Car类,如果我们没有手动声明构造方法的话,java语言会自动为我们声明一个空参数类型的构造方法.就是图片中的Car(){}.当然我这里吧Car(){}这个构造方法写出来是为了让其更直观的体现,在举个例子 Person p = new Person();那么这个Person对象的构造方法是什么呢?大家应该知道了..

java 类构造器的注解_构造函数_03

没错..这里的Person(){}就是这个Person类的构造方法..

那么构造函数的用处呢,这里就带大家了解一下.看下图

java 类构造器的注解_java之构造器_04

java 类构造器的注解_构造方法_05

我在这个构造器里面添加了一个输出语句.让我们看看运行结果

java 类构造器的注解_java 类构造器的注解_06

之所以会有这样的结果,是因为当Car这个对象被new(创建)出来后,jvm会自动调用其构造方法,而Car这个对象的构造方法就是

java 类构造器的注解_java 类构造器的注解_07

通过这个例子,应该能体会到一点构造器的用法了吧,Car c = new Car()中我们使用的是一个无参数的构造函数,那么,如果我们想要参数呢.比如说Car类里面拥有一个Color属性和Count属性,我们想在调用创建这个对象的时候就将其初始化该怎么办呢?

这个时候我们只需要在重新定义一个构造方法,让我们能在创建对象的时候顺便初始化属性(赋值),上图

java 类构造器的注解_java 类构造器的注解_08

发现没,我在原来是空的括号里面加了两个参数,一个String类型的变量以及一个int类型的变量,那么这两个变量有什么作用呢?不要着急.我先解释一下this的意思.○( ^皿^)っHiahia…

this关键字可以指代对象.this.color指的就是这个对象的color属性.怎么.看不懂吗..没事儿.马上解释......

java 类构造器的注解_java之构造器_09

Car c = new Car("红色",4) 这是我们创建对象的语句,上上图的this.color我们可以直接当成c.color,this跟c差不多,代表的都是这个对象的地址.this.color顾名思义就是:这个对象的color属性.

好了,让我们回过头来,我们之前不是在构造方法中声明了两个参数吗?一个color 一个count,现在我们就使用它们,我先画个图...嘿嘿

java 类构造器的注解_java之构造器_10

其实说白了..这就是一个赋值的过程..应该发现了吧.....String color = "red"   int count = 4.

this.color = color 估计很多新手都被这句搞蒙了...这里只要这样想就OK了..this.color当成c.color.... color就当成"red"(根据上文..)就OK了 this.count也是一样的理解

好了让我们将程序运行一次

java 类构造器的注解_构造器_11

发现没.现在创建对象调用的就是我们定义的构造方法了...构造方法还是挺简单的....

对了,强调一点.创建对象时传参数一定要与构造函数想匹配...否则就会报错..比如会出现以下错误:The constructor Car(String) is undefined  找不到相应的构造函数

要是我说的有什么错误的地方.欢迎指出.也可以提问