java中非常重要的修饰词---static、this、final、super
来源:互联网 发布:集体智慧编程 百度云 编辑:程序博客网 时间:2024/04/29 01:30
this
this总的来说表示指向当前对象的指针。
/** * * @ClassName: Test * @Description: this example * @author: Loser * @date:2016年9月12日 下午8:54:26 */public class Test {private int i=0; //构造1Test(int i){ this.i=i+1; //此时this表示引用成员变量i,而非函数参数i System.out.println("i-1:"+(i-1)+"this.i+1:"+(this.i+1)); } //构造2Test(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 0
- java中非常重要的修饰词---static、this、final、super
- Java中static、this、super、final用法
- Java中static、this、super、final用法
- Java中static、this、super、final用法
- Java中static、this、super、final用法
- Java中static、this、super、final用法
- Java中static、this、super、final用法
- Java中static、this、super、final用法
- Java中static、this、super、final用法
- Java中static、this、super、final用法
- Java中static、this、super、final用法
- Java中static、this、super、final用法
- Java中static、this、super、final用法
- Java中static、this、super、final用法
- Java中static、this、super、final用法
- Java中static、this、super、final(1)
- Java中static、this、super、final用法
- Java中Static、this、super、final用法
- ambari环境搭建记录要点
- C++类和对象的概念
- CentOS 7下LAMP源码安装(2)设置及源码下载
- Monitor IO for Windows
- cv-拉普拉斯算子锐化浅析
- java中非常重要的修饰词---static、this、final、super
- Oracle百万记录sql语句优化技巧
- 并发请求
- 银联des和3des加密比对checkvalue java
- 【springmvc】SpringMVC 实现json的输入
- android studio 使用gradle区分版本
- 极简MVP设计模式 搭配UI框架实现数据显示
- instanceof
- 得到各种收益率