Java中的关于static的解释和应用

1.什么是高级类的特性修饰符?分别可以修饰哪些内容?

  :1). static: 修饰属性、方法、块、内部类

     2). final: 修饰类、常量属性、方法、局部常量

     3). abstract: 修饰类、方法

     4). synchronized: 修饰方法、同步代码块

2.什么是static?

   答:static被称为静态,可以用来修饰类的属性和方法。

3.什么是static属性?

   答:如果类的某个属性,不管创建多少个对象,属性的存储空间只有唯一的一个,那么这个属性就应该用static修饰,被static修饰的属性被称为静态属性。

*static属性可以使用对象调用,也可以直接用类名调用。

*静态属性是类的所有对象共享的,即不管创建多少个对象,静态属性在内存中只有一个。

例:public class Employee{

非静态 private string name;

 属性  private double salary;

属性   private static int count;

4.什么是静态方法? 并且举例说明各部分是什么?

   答:如果某个方法不需要与某个特定的对象绑定,那么该方法可以使用static修饰,被static修饰的方法称为静态方法。

   例:

 

      Public  static  void   sellticket(){

         System.out.println(“所有火车票都是12306卖的”)

        }

 

 

5.如何使用static 方法?

   答:如果某个方法与实例无关,也就是说不管哪个对象调用这个方法,都执行相同的操作,与对象没有关系,则应该定义为静态方法。不需要创建对象后再使用该方法。

    例:API中的Math类,都是静态方法,因为进行数学运算时,与Math对象本身无关,使用类直接调用即可。

  **1.任何方法都可以直接调用静态方法。

    2.静态方法不能直接调用非静态方法,需要创建对象,用方法名调用非静态方法。

   6.什么是static 块?如何在编译器中使用?请举例说明。还有哪些注意事项?

    答:static块和static的属性以及方法的性质是相同的,用static修饰的代码块表示静态代码块,当Java虚拟机加载类时,就会执行该代码块。

     例:直接在代码块前,加上关键字static即成为静态块。

     Static{

          System.out.println(“123”);

          System.out.println(“123”);

          System.out.println(“123”);

}

    注意:1).静态块只有在类加载的时候被执行一次,不管创建多少个对象,都不会再执行。

          2). 如果一个类加载的时候,总要预先做一些事情,则可以放在静态块中,例如,读取一个属性文件,进行一些常规配置,写一些日志等。

           3).一个类中可以有多个静态块,按照顺序执行。

 7. 什么是final?如何使用final

       答:final用于声明属性,方法和类

          1).属性:定义就必须直接赋值或者在构造方法中进行赋值,并且后期不能修改。

          2).方法:定义必须有实现代码,并且子类里不可被覆盖。

           3).类:不能被定义为抽象类或是接口,不可被继承。

  8.如何使用final修饰属性?

        答:当final修饰属性时,基本数据类型的属性将成为常量,不能被修改。

        例:* π= 3.14159265358979

               E= 2.718281828459045

 9.如何给final属性赋值?

         答:1).在声明时同时赋值,往往与static一起使用

例:private int index

    private static final double pai = 3.14;

    private final int level;

 

    2).声明时不赋值,必须在构造方法中逐一赋值

    Public Test(){

    Level = 0;

}  

              

     3).总的原则:保证创建每一个对象的时候,final属性的值是确定的。

       public Test(int index){

       this.index = index;

       Level = 1;

}

   10.如何使用final修饰参数?

    答:在方法参数前面加final关键字,为了防止数据在方法体中被修改。

               public class Ex{

                    private int a = 1;

                    private String b;

                  Public void ww(final int a){

a = 12;

}

}

               11.如何在编译器中使用变量和常量?

                 答:按作用域区分

                 Public class Employee{

                 Private String name;

                 Private double salary;

                 Private static int count;

 

                 Public void work(String leader){

String taskname = null;

 

                 //1).在类中声明的变量或常量叫属性,或者叫成员变量,如:name,salary,count

                  2).属性可以使用static修饰,局部变量不可以。

                  3).属性的生命周期很长,随着类加载或者创建对象被初始化,直到没有对象引用才回收。

                  

4).在方法中声明的变量叫局部变量,或者临时变量。

 5).属性可以使用四种权限修饰符修饰局部变量不可以。

 6).属性可以使用final修饰,局部变量也可以

 7).局部变量生命周期很短,执行某个方法时临时被初始化,方法结束即被回收。

 8).如果局部变量与属性重名,则遵守就近原则,可以使用this区分。

  9).属性可以在整个类中使用,局部变量只在当前方法中使用

  10).属性都有默认的初始化值,如引用类型都是null,整型是0等,局部变量不被自动初始化,必须手工初始化,如taskname手工指定为null才为null,而属性name默认就为null

}

}

     

posted @ 2017-09-20 17:07  Evan789  阅读(814)  评论(0编辑  收藏  举报