JAVA浅谈-类的定义

55 阅读3分钟

对象和类的详解

类可以看做是一个模版,或者图纸系统根据类的定义来造出对象。我们要造一个汽车,怎么样造?类就是这个图纸,规定了汽车的详细信息,然后根据图纸将汽车造出来。

类:我们叫做class。对象:我们叫做Object,instance(实例)。以后我们说某个类的对象,某个类的实例。是一样的意思。

总结

  • 类可以看成一类对象的模板,对象可以看成该类的一个具体实例。
  • 类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所应具有的共同的属性、方法。

对于一个类来说,有三种成员:属性field、方法method、构造器constructor。

属性(field成员变量)

属性用于定义该类或该类对象包含的数据或者说静态特征。属性作用范围是整个类体。在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。

属性定义格式: [修饰符] 属性类型 属性名=[默认值];

方法

方法用于定义该类或该类实例的行为特征和功能实现。方法是类和对象行为特征的抽象。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。

构造方法(构造器constructor)

构造器用于对象的初始化,而不是创建对象!

声明格式:

[修饰符] 类名(形参列表){

//n条语句

}

构造器4个要点:

  • 构造器通过 new关键字调用!!
  • 构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值。
  • 如果我们没有定义构造器,则编译器会自动定义一个无参的构造方法。如果已定义则编译器不会自动添加!
  • 构造器的方法名必须和类名一致!

构造方法的重载

构造方法也是方法。与普通方法一样,构造方法也可以重载。

格式特点

  • 方法名与类名相同(大小写也要与类名一致)
  • 没有返回值类型,连void都没有
  • 没有具体的返回值return;

方法重载涉及到一个覆盖的问题,如果重新定义传参的构造方法,需要把默认的无参构造方法显示的写出来,因为默认的已经被重载的覆盖掉,调用Car()时会报错!

因为Car()这个无参构造方法已经被有参的Car(String name,String color,float price)覆盖,new Car()时找不到无参构造方法.需要我们显示得把Car()定义出来才可以.

方法的重载,在Car类中有Car同名的构造方法,run()同名的构造方法,在类中使用重名的方法就是方法的重载,如果两个方法的名字和参数类型,数量,顺序都相同是不可以的,同名的方法需要考方法的参数类型,数量和顺序区分开来

注意事项

  • 如果没有给出构造方法,系统将自动提供一个构造方法
  • 如果给了构造方法,系统将不再提供构造方法
  • 所以最好一直写出无参构造方法