一、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进行继承 }*/
介绍:
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