关于类
- 在类中存在着成员变量和成员方法
1.成员变量:实例变量、类变量(静态变量)。- 类变量会在类的字节码加载完毕后被初始化好,在JVM中变量只存在一份。
- 实例变量会在被实例化后才初始化好,在JVM中有多少实例,实例变量就存在多少份,且各自独立
- 成员方法:实例方法、类方法(静态方法)
- 实例方法和类方法在类的字节码加载完毕后就已经准备好了,但此时只能通过类名调用类方法而不能调用实例方法。实例方法一定是被对象的引用变量调用的,类方法一定是先可以被调用的。
- 结论:在实例方法中可以调用类方法(后准备好的可以调用先准备好的)而在类方法中不可以调用实例方法(实例方法一定要伴随着对象被调用,而对象一定是在加载后才可以被实例化的)
- 构造器:被私有化的构造器只能在本类中被调用,而本类除了此private构造器外,没有其它构造器了,所以本类以外的代码是不可以对此类进行实例化操作的。
- 静态工厂方法模式:静态工厂方法模式可以替代构造器的功能
- 静态工厂方法有表述性更强的名称,而构造方法没有。
- 静态工厂方法可以返回的数据更丰富,而构造方法只能返回其所在的类型。
- 构建模式:提供一个或多个用于构建对象的静态工厂方法。在这些个方法的参数列表中存在的参数通常是对象必填属性,同时还会提供一些可选属性的设值方法,但不同于set方法,它们通常对刚刚构建的对象进行可选属性的设置后,再将此对象返回,这些返回对象的方法可以被连缀调用。
- 构造器:是一种特殊的方法没有返回类型,名称与所在的class的名字一致,构造器的作用为构造其所在类的对象,构造器一定是伴随着new被调用的。一旦调用了构造器,就会实例出一个新的对象,在构造器中可以对可以对某些对象的属性进行初始化。
- 如果在类中没有编写构造器,则Java会生成一个无参构造器,如果在中我们编写了构造器,无论其有参无参,Java都不会再生成无参构造器了
- 调用父类的构造器必须出现在子类构造器的首行位置。
- 调用本类的另一个构造器调用的是参数列表中所有参数的类型完全能够匹配的上的那个本类中的构造器。调用本类其它构造器的语句必须出现在构造器的首行。因类super()也有同样的特性,所以在一个构造器中要么调用本类中的某个构造器,要么调用父类中的某个构造器。