其他分享
首页 > 其他分享> > 易错

易错

作者:互联网

static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。

  但是要注意的是,虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的

2)static变量

  static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

  static成员变量的初始化顺序按照定义的顺序进行初始化。

3)static代码块

  static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。

class Person{

    private Date birthDate;     private static Date startDate,endDate;     static{         startDate = Date.valueOf("1946");         endDate = Date.valueOf("1964");     }           public Person(Date birthDate) {         this.birthDate = birthDate;     }           boolean isBornBoomer() {         return birthDate.compareTo(startDate)>=0 && birthDate.compareTo(endDate) < 0;     } } public class Main {       static int value = 33;       public static void main(String[] args) throws Exception{         new Main().printValue();     }       private void printValue(){         int value = 3;         System.out.println(this.value); //33     } }  

2、前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算。

3、后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算 

标签:易错,静态方法,变量,静态,birthDate,static,Date
来源: https://www.cnblogs.com/gavin-yao/p/10573095.html