java基础之构造器以及static关键字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础之构造器以及static关键字相关的知识,希望对你有一定的参考价值。

  在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  找不到相应的构造函数

   

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

 

以上是关于java基础之构造器以及static关键字的主要内容,如果未能解决你的问题,请参考以下文章

java第五章:面向对象(oop)之 static关键字

java 之 构造器 static关键字

Java基础--static关键字

面向对象

Java基础7---面向对象(构造方法和static关键字)

Java基础5—{面向对象(构造方法对象的创建步骤static关键字Math类)}