我的Java学习之路——关键字final、static、this

一、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

我的Java学习之路——关键字final、static、this_第1张图片



文章转载自:http://www.cnblogs.com/Gaojiecai/p/3997489.html


你可能感兴趣的:(继承,局部变量,Java学习)