java中非常重要的修饰词---static、this、final、super

this

this总的来说表示指向当前对象的指针。

/**
 * 
 * @ClassName: Test   
 * @Description: this example
 * @author: Loser
 * @date:2016年9月12日 下午8:54:26
 */
public class Test {
	
	private int i=0;
	
    //构造1
	Test(int i){
       this.i=i+1; //此时this表示引用成员变量i,而非函数参数i
       System.out.println("i-1:"+(i-1)+"this.i+1:"+(this.i+1));
    }
   
    //构造2
	Test(int i,int s){
       this(s); //this调用第一个构造器,必须为于其第一行,构造方法也只能调
       			//用一个且仅一次构造器!
       System.out.println("Int constructor:  "+i+"/n"+"String constructor:  "+s);
    }
    public Test increment(){
       this.i++;
       return this;//返回的是当前的对象
    }
    public static void main(String[] args){
       Test t1=new Test(10);
       Test t2=new Test(20,50);
      
       System.out.println(t1.increment().i);
    }
}
就是说是哪个变量new了该对象就表示谁 

this 还可以用于构造函数的调用,例如:上述代码构造2中的this(s)

this不能和static同时使用,因为static修饰的方法和属性归类所有,而不是某个对象特有

super

super用于在子类中操作父类隐藏的属性和方法

super在子类的构造函数中调用父类的构造函数,注意:super调用构造函数必须位于子类构造函数的第一条语句,因为构造顺序为先构造父类的构造函数,再构造子类的构造函数,如果不位于第一条,那么就违背了这原则,会报错!

static

static不能和this同时使用,因为static是供类所有,是所有对象共享的,类似全局变量。首次加载类的时候就分配了内存,并且被static修饰的方法和变量JVM只加载一次。

被static修饰的变量称为类变量,被static修饰的方法称为类方法或者静态方法;没被修饰的称为实例变量,实例方法。

类方法只能访问类变量和类方法,实例方法都可以访问,关系如图所示:

关于static访问的误区:
public class TestStatic {
	
	private int i=0;
	
   
    public void increment(){
       System.out.println("i="+i++);
    }
    public static void main(String[] args){
    	int j=10;
       Test t1=new Test(10);
       Test t2=new Test(20,50);
       j=t1.z;
      
       System.out.println(j);
    }
}
对于被static修饰方法的访问是指方法本身外部的访问。在上段代码中,关于static方法的访问是指main之外的访问,比如说:main方法无法访问i,但是如果在main中实例化对象,通过对象去访问对象里面的变量是没问题的,还有在main方法里面可以声明实例变量,例如j。记住:我们所说static修饰方法的访问是它对于外部的访问。

final

final在Java中字面意思表示常量

对于final的理解:
被final修饰的方法不能够被重写
被final修饰的类不能被继承
被final修饰的变量开两种情况:1.如果是基本类型变量那么它的值是不能改变的,并且声明时最好初始化;如果是引用类型变量,那么他的指向不能变,即地址不能变,但是类里面的值是可以改动的

充分利用this和super可以减少重复代码
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值