这里的普通方法和成员变量是指,非静态方法和非静态成员变量
首先static是静态的意思,是修饰符,能够被用来修饰变量或者方法。html
static成员变量有全局变量的做用 非static成员变量则没有全局变量的做用 局部变量是类的方法里面的变量
静态static成员变量是指类的成员变量,他不属于类的对象,只单独属于类,被全部对象共享。当在类中改变他的值时,他在每一个对象里面的值都会随之改变。java
这也就是说在对象中不能改变他的值,只能在他所在的类中改变,若是他带有final的话(static final)就代表这是一个常量。
static变量是静态变量,当加载类时即已加载,非static变量实例对象时加载。工具
static变量是静态变量当改变其中的值,其它实例中的该static变量也会改变,非static变量只会在具体所在的那个对象中改变,不会影响其它实例。post
例子: static int i=1; 这里的i就是一个静态变量。具体特性以下url
public class demo { static int i=10; public static void main(String[] args){ int k=i;//直接调用 int j=demo.i;//经过类来调用 System.out.println("直接调用k:"+k); System.out.println("经过类来调用j:"+j); } }
是在类中执行该方法时,该方法并不对成员变量有任何操做,也就是说该静态方法的操做不针对对象,只针对该类时,使用。那么使用该类也就不须要建立对象,而能够直接经过类名.方法名实现。spa
类修饰符:线程
public(访问控制符),将一个类声明为公共类,他能够被任何对象访问,一个程序的主类必须是公共类。3d
abstract,将一个类声明为抽象类,没有实现的方法,须要子类提供方法实现。code
final,将一个类生命为最终(即非继承类),表示他不能被其余类继承。htm
friendly,默认的修饰符,只有在相同包中的对象才能使用这样的类。
成员变量修饰符:
public(公共访问控制符),指定该变量为公共的,他能够被任何对象的方法访问。
private(私有访问控制符)指定该变量只容许本身的类的方法访问,其余任何类(包括子类)中的方法均不能访问。
protected(保护访问控制符)指定该变量能够别被本身的类和子类访问。在子类中能够覆盖此变量。
friendly ,在同一个包中的类能够访问,其余包中的类不能访问。
final,最终修饰符,指定此变量的值不能变。
static(静态修饰符)指定变量被全部对象共享,即全部实例均可以使用该变量。变量属于这个类。
transient(过分修饰符)指定该变量是系统保留,暂无特别做用的临时性变量。
volatile(易失修饰符)指定该变量能够同时被几个线程控制和修改。
方法修饰符:
public(公共控制符)
private(私有控制符)指定此方法只能有本身类等方法访问,其余的类不能访问(包括子类)
protected(保护访问控制符)指定该方法能够被它的类和子类进行访问。
final,指定该方法不能被重载。
static,指定不须要实例化就能够激活的一个方法。
synchronize,同步修饰符,在多个线程中,该修饰符用于在运行前,对他所属的方法加锁,以防止其余线程的访问,运行结束后解锁。
native,本地修饰符。指定此方法的方法体是用其余语言在程序外部编写的。