一、final关键字(可以读不可以写、只读)
1、final的变量的值不能够被改变
①、final的成员变量
②、final的局部变量(形参) //意思是“实参”一旦传进我的方法里面,就不允许改变
2、final的方法不能够被重写
3、final的类不能够被继承
java的Api中有没有final 的类呢?答:有,例如String类。api中声明为:public final class String{};
public class TestFinal{
public static void main (String args[]){
T t = new T();
//t.i=2; //会出现无法为最终变量i分配值
}
}
class T{
final int i =1;
}
class TT{
public final void overRide(){
}
}
class TTT extends TT{
/*public final void overRide(){
//会出现:TTT中的overRide()无法覆盖TT中的overRide()
}*/
}
final class TTTT{
}
/*class TTTTT extends TTTT{
//会出现:无法从最终类TTTT进行继承
}*/
二、static关键字
介绍:
1、在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员变量只有一份。
2、用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static成员。(静态方法不再是针对于某个对象调用,所以不能访问非静态成员)
3、可以通过对象引用或类名(不需要实例化)访问静态成员。
注:静态变量多用于计数功能。(单例模式之类的经常用到)
程序code:
public class TestStatic{
private static int sid;
private String name;
int id;
public TestStatic(String name){
this.name = name;
id = sid ++;
}
private void info(){
System.out.println("My name is:"+name+",Id is:"+id+".");
}
public static void main(String args[]){
TestStatic.sid = 100;
TestStatic s1 = new TestStatic("lili");
TestStatic s2 = new TestStatic("tom");
s1.info();
s2.info();
}
}
运行结果:
三、this关键字
this使用范围
1、在类的方法定义中使用的this关键字代表调用该方法对象的引用。
2、当必须指出当前使用方法的对象是谁时,要使用关键字this。
3、有时使用this可以处理方法中成员变量和参数重名的情况。
4、this可以看做是一个变量,它的值是当前对象的引用。
注:this一般出现在方法中,当方法没有被调用时。并不知道this指向那个具体的对象。
当某个对象调用有this的方法时,this就指向调用这个方法的对象。
public class TestThis{
private int i;
public TestThis(int i){
this.i = i;
}
private TestThis increment(){
i += 1;
return this;
}
public static void main (String[] args){
TestThis mTestThis = new TestThis(100);
System.out.println(mTestThis.increment().increment().i);
}
}
输出结果:102
文章转载自:http://www.cnblogs.com/Gaojiecai/p/3997489.html