静态域与静态方法
静态域
如果将域定义为static,一个类中只有一个这种域。当创建一个对象时,这个对象会拷贝实例域。但是static这种域不会改变,也就是说不会因为对象的改变而改变,即使没有对象也存在,通常称为类域.
静态变量
静态变量用final修饰成为静态常量,声明静态常量是因为防止其他对象有自己一份拷贝,而用final修饰是因为防止再次将域改变
静态方法
静态方法是一种不能向对象实施操作的一种方法。所以不能访问类的实例域,但是可以访问静态域。可以使用对象调用静态方法,但是不适用。
在以下两种情况下使用静态方法
- 一个方法不需要访问对象状态,只需要提供显示参数
- 一个方法只需要访问静态域
工厂方法
静态方法还有一种常见的用途,构造对象。
使用工厂方法构造对象的原因
- 无法命名构造器,构造器必须与类名相同
- 使用构造器无法改变构造对象的类型
main方法
因为静态方法不需要使用对象就可以调用,不需要构造对象就可以使用。main方法还没有创建对象就开始运行,所以声明成静态方法
方法参数
方法参数传递分为两种类型
- 基本数据类型
- 对象的引用
第一种属于拷贝参数,而第二种是传递的地址可以改变原来的数值
但是对Java对象的采用的不是引用传递,而是拷贝了地址。