------- android培训、java培训、期待与您交流! ----------
1.static属性
1)static修饰的资源属于类级别,是全体对象实例共享的资源
2)静态属性
·使用static修饰的属性,属性类的全体类的实例共享的变量
·静态属性是在类的加载期间初始化的
·使用类名·属性访问,如:System.out
3)实例变量
·属于对象的属性
·使用对象属性访问,如:person.name
例:
public class StaticFiledDemo{
public static void main(String[] args){
Foo f1=new Foo();
Foo f2=new Foo();
Foo f3=new Foo();
System.out.println(
f1.id+""+f2.id+""+f3.id+""+Foo.i);
}
class Foo{
int id;
static int i=0;
public Foo(){
id=i++;
}
注:
·int id 实例变量,相当于"每个人的水杯"
·static int i=0; 静态级别变量,相当于"共用的水桶";
2.static方法
使用static声明的方法,属于类的方法,一般用来表示工具方法
在类加载以后可以自己调用,不需要创建爱你任何类的实例对象。
public class StaticMethodDemo{
public static void main(String[] args){
int c=Moo.add(1,2);//使用类名访问静态方法
System.out.println(c);
double d=Math.sin(Math.PI);
System.out.println(d);
long now=System.currentTimeMills();
}
}
class Moo{
int a=2;
//静态方法是属于类的方法,是公共工具方法
//静态方法不能访问属于对象的资源
public static int add(int a, int b){
return a+b;
}
}
3.静态代码块
静态代码块是在类加载期间运行的代码块,由于类加载一次,所以静态代码块只执行一次
静态代码块用途不是很常见,一般是类加载以后初始化一些资源时使用。
1.final关键字
1)final修饰的类,不能被继承
·java的String就是final类,不能被继承
·Math是final类,不能被继承。
·Integer、Long、Character等包装类是final类,不能被继承
·在实际原则上是不允许使用final类
Spring、Hibernate、Struts2,这些框架使用了"动态继承代理"技术,使用final的类会影响"动态代理技术"的实现;
2)final修饰的方法,不能再被覆盖
·在实际项目开发中,原则上不使用final方法,因为动态代理技术。
3)final修饰的变量,初始化以后不允许再修改了
·final 局部变量
·final 方法参数
·final 的成员变量
4)final static---Java 使用final static 修饰的变量作为常量
·一般要求常量名都有大写字母
·java常量不是const
------- android培训、java培训、期待与您交流! ----------