Chinaunix首页 | 论坛 | 博客
  • 博客访问: 524240
  • 博文数量: 151
  • 博客积分: 7010
  • 博客等级: 少将
  • 技术积分: 1405
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-22 14:32
文章分类

全部博文(151)

文章存档

2011年(1)

2010年(23)

2009年(1)

2008年(126)

我的朋友

分类: Java

2008-04-26 10:55:50

1、Static
   用static修饰的方法称为静态方法或称为类方法,它不需要实例化便可以被访问,也就是可以用类名的方式来访问;没有用static修饰符修饰的方法,是属于某个实例化对象的方法.要先创建对象,然后才能访问非静态方法,所以必须用对象名的方式来访问。(对于变量也是一样)
   因此静态方法只能处理静态成员变量.也就是static方法处理的static成员变量.而不能直接操作和处理属于某个对象的成员变量(非 静态方法/变量),要想处理非静态变量,就要先创建一个对象,然后通过该对象去访问非静态成员。
   可以这么理解,static方法/变量是类中共性的东西,所有的类都具有而且都一样,所以不需要建立对象就能访问。而非static的方法/变量,不同的对象是不一样的,是属于个体的,所以要先建立对象才能访问。 
   static方法不能以任何方式引用this和super关键字,因为调用static方法的时候对象根本就不存在,所以就谈不上this和super了。
   main()方法是静态的,因此JVM在执行main方法时不创建main方法所在的类的实例对象,因而在main方法中不能直接访问该类中的非静态成员,如果要想访问必须先创建该类的一个实例对象,通过过对象来访问。
   既然static变量是类变量,所以一旦static变量被修改,所有该类的对象的这个static变量都随之被修改。

2、静态代码块
   仅仅用static修饰的一个代码块,如
   static
   {
      int x = 4
      System.out.println("call static code");
   }
   静态代码块不包含在任何方法体中,当类被载入时,该代码块被执行,而且只被执行一次。静态代码块经常用来进行类属性的初始化。不管生成了多少个类的对象,静态代码块只被执行一次。

3、final
   final可以让你控制你的成员、方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中拥有了一个不可或缺的地位,也是学习Java时必须要知道和掌握的关键字之一。
   final成员:当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中。这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值。
   final方法:是在派生类中不能被覆盖的方法
   final类:是不能被继承的类。
   一个类可以含有final方法,final类和final方法要使用final进行声明
   提示:final static 类型成员变量。static使得变量只存在一个拷贝。final使得它不能改变。
 
4、this
  1).在类的方法定义中使用的this关键字代表使用该方法的对象的引用;
  2).当必须指出当前使用方法的对象是谁时要使用this;
  3).有时使用this可以处理的方法中成员变量和参数重名的情况;
  4).this可以看作是一个变量,它的值是当前对象的引用。
阅读(1249) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~