java之构造器_java基础之构造器

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

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

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

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

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

b5364fba1ab3034bb4d916403db97057.png

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

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

bef34710c2d962059a7a2c7987fd0117.png

02c1e8aa3f2d8e50caeed005a93a9f37.png

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

c23986bc1c5379ae7712a81ef394af4e.png

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

122233fa878bb6ecd199339a85a70ac1.png

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

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

023439e53b114dccb4c8d2a1d1be6e20.png

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

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

8cbad5fa7d9c5defe3f7474101480746.png

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

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

743f621fc557c72bdc6c01046a4028ec.png

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

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

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

2289a7e2a41cb0c38a7a15664a7edd1e.png

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值