一。
1.static 修饰符 可以修饰 :属性(静态属性) 方法(静态方法) 类(这里略过)
static 调用属性或方法 类名.属性或方法 --Person.age --Person.change
2. 在有static修饰的类中执行顺序是:同一个类,按照 static修饰的静态属性方法 非静态属性方法 构造方法 的顺序从上到下执行
存在继承关系时先执行1.父类静态属性方法 2.子类静态属性方法,然后是父类非静态属性方法 父类构造方法 子类非静态属性方法 子类构造方法
3. 注意:对于static的属性一旦被某一个人修改了,那么其他的调用全部受影响
在非static方法里面可以访问所有;在static里面只能访问static里面的
所有的static方法和属性都是在加载类的时候初始化的,在静态方法(static修饰)里面不能使用this关键字调用别的非static属性方法
static的方法是被所有的对象共有,并且static的所有属性和方法都只有一份
static方法不能被重写,只能被继承,如果对象之间存在多态,那么调用的方法由对象变量的类型来决定
如果继承过来的方法和自己的一模一样,那么父类继承过来的会被子类隐藏(hidden)
二。
1. final 修饰原生数据类型时 它们就是常量;修饰引用类型时它就不能再指向其它的对象,但指向的对象的内容可以改变
修饰 类为终态类 不能被继承
属性为 常量 不能被改变
方法为终态方法 不能重写
2. 赋值初始化:final修饰的变量必须显示的初始化否则报编译错误
在声明时便赋值初始化
声明时不赋值:可在构造方法中赋值初始化
可在动态代码块中赋值初始化
三。
singleton 单例 : 在一个系统中永远只有一个对象
1.如果不希望用户可以随意创建对象,那么将对象的构造方法访问修饰符设置为private
private SingletonTest()
{}
2.在单例类的内部创建一个单例对象,并且将其设置为static的
private static SingletonTest singleton = new SingletonTest;
3.提供一个公共的方法用来供用户调用当前的单例对象
public static SingletonTest getInstance()
{
if(null == singleton)
{
singleton = new SingletonTest();
}
return singleton;
}