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

  

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

时间: 2024-10-10 15:31:29

java基础之构造器以及static关键字的相关文章

Java基础之final、static关键字

一.前言 关于这两个关键字,应该是在开发工作中比较常见的,使用频率上来说也比较高.接口中.常量.静态方法等等.但是,使用频繁却不代表一定是能够清晰明白的了解,能说出个子丑演卯来.下面,对这两个关键字的常见用法做点总结记录,方便之后的回顾以及突击知识点. 二.关键字 final final,一如字面意思 “最终的”,大体在 Java 中表示 “不可变的”.可用来修饰类.方法.方法参数以及变量. 1.修饰类 final 在修饰类的时候,代表的是此类不能被继承.也就是说如果一个类确定不会被继承使用,则

Java基础之final和static关键字

一.final        根据程序上下文环境,它可以修饰非抽象类.非抽象类成员方法和变量. final类不能被继承,没有子类,final类中的方法默认是final的.        final方法不能被子类的方法覆盖,但可以被继承.        final成员变量表示常量,只能被赋值一次,赋值后值不再改变.        final不能用于修饰构造方法.        注意:父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的. 1.fin

Java基础03 构造器与方法重载(转载)

显式初始化要求我们在写程序时就确定初始值,这有时很不方便.我们可以使用构造器(constructor)来初始化对象.构造器可以初始化数据成员,还可以规定特定的操作.这些操作会在创建对象时自动执行. 定义构造器 构造器(constructor)是一个方法.像普通方法一样,我们在类中定义构造器.构造器有如下基本特征: 构造器的名字和类的名字相同 构造器没有返回值 我们定义Human类的构造器: public class Test{    public static void main(String[

JAVA基础之包装类,static,final,abstract ,接口 和 内部类

包装类: 自jdk5之后,java就提供了自动装箱与自动拆箱功能,大大简化了基本类型与其包装类对象之间的转换过程,当然装换过程中要注意类型的匹配. public class IntAndInteger { public static void main(String[] args) { //自动装箱 Integer intObj = 5; Integer intObjj = 5; //自动拆箱 int a = intObj; //包装类实现基本变量与字符串的转换 String str = "12

Java基础の乱弹琴一:assert关键字

一.概述 assert:表示断言 二.语法 在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默认是不启动断言检查的(这个时候,所有的断言语句都 将忽略!),如果要开启断言检查,则需要用开关-enableassertions或-ea来开启. assert关键字语法很简单,有两种用法: 1.assert <boolean表达式> 如果<boolean表达式>为true,则程序继续执

Java SE 第二十三讲----static关键字

1.static关键字 [在二十二讲视频中30分钟开始讲授] 2.static修饰属性:无论一个类生成了多少个对象,所有这些对象共同使用唯一一份静态的成员变量:一个对象对该静态成员变量进行了修改,其他对象的该静态成员变量的值也会随之发生变化.如果一个成员变量是static的,那么我们可以通过类名.成员变量的方式来使用它(java推荐使用这种方式). package com.cl.abstracttest; public class StaticTest { public static void

Java基础笔记(2) 程序入口 关键字 标识符 常量 变量

提醒:关于那些和我一样新鸟来看资料的,能看懂多少看多少,看不懂的就是不重要,重要的你想我自己学习肯定要标注的,这些信息明白每个知识点实际作用就好了,其他的比如等会讲的常量内存,常量池这些都是我找的资料,有的自己都还不是太清楚,只是为了明白有这回事,没有那个新手教程一上来就讲这些,我拿低工资的怎么能去给搞研究的操心! 程序的编译与执行: 1.程序入口,在每一种编编程中,都会有一个main作为程序入口,JAVA的main写法如下: public static void main(String){}

03_JavaSE之OOP--面向对象(构造器,static关键字)

面向对象(三) 一.构造器(构造方法) 1.概述以及作用 构造器也叫构造方法,在构造类的对象时,构造器会运行,以便将实例域(成员变量)初始化成所希望的状态. 作用:给对象的数据(属性)进行初始化赋值,也可以不进行任何赋值. 2.例子: 1)代码 1 public class Person { 2 //成员变量 3 String name; //姓名 4 int age; //年龄 5 6 //空构造器 7 public Person(){ 8 9 } 10 11 //有参构造器 12 publi

JAVA基础知识(2)--关键字final的使用

/***Final关键字的使用*@author lihaiming*Email:[email protected]*关键字Final可以修饰属性,方法,类*修饰属性的时候,final修饰的变量是一个常量*修饰方法时,方法不被子类重写*修饰类时,类不被继承*/ public class TestFinal{ //final修饰变量时,变量就成常量,不能再次对它赋值: private final int I=100; //static是一个全局变量 private static int J=50;