java关键字

This:表示是一个对象的默认引用,总是指向调用该方法的对象,根据this出现的位置不同,this作为对象的引用有两种情形:

          1、构造器中引用该构造器执行初始化的对象!

          2、在方法中引用调用该方法的对象!

Static:静态的,不依赖对象,依赖类(类级别)

           可以在对象中共享

class Tt{
   static int a;
}
 
public class Main {
   public static void main(String[] args) {
      Tt tt1=new Tt();
      tt1.a++;
      System.out.println(tt1.a);
      System.out.println("*************");
      Tt tt2=new Tt();
      tt2.a++;
      System.out.println(tt2.a);
   }
}

这里第一次打印tt1.a时等于1;

第二次打印时因为重新new了对象理应tt2.a也等于1,但是由于a属性加了static所以不依赖对象而是依赖类,可以在对象中共享,所以tt2.a是基于tt1.a上等于2!

static方法中不可以直接调用非static的属性和方法;想要使用必须new新对象,用对象调用!

Static三个说明:

1、      静态变量 :类级别变量,是这个类的变量而不是某一个对象的变量。可以用类名调用(当然也可以用对象调用),所有的对象所使用的静态变量所使用的是同一份(一个类生产多个对象时,用一个对象改变了一个静态变量,那么所有对象的这个静态变量都会改变,堆中这个“静态区”,专门放置静态变量区)。

2、      静态函数:可以直接用类名调用,在静态函数中不能用this(在静态函数中不能直接使用非静态成员函数和非静态成员变量,静态函数中只能用静态成员变量)如果一个函数不使用成员变量(不受哪个对象调用该对象左右)理论上就可以定义成静态函数,一般来讲“工具函数”定义为静态函数

3、      静态代码块

Static{

            Sysout(“静态代码块!”);

}                                                优于主函数运行(类在装载的时候执行)

1给静态变量赋初始值2装载本地代码(native->c、c++)

原文地址:https://www.cnblogs.com/maxinliang/p/2771583.html