一、static的用途
1、为什么要用static修饰【静态变量】?
首先,是公共性,定义一次,大家都可以用。Static变量是在类的第一行声明变量,并不在方法或函数里,也不是放在main里,因为,这样,它才能被所有的方法和函数调用,一般用于修饰类的属性和方法。
举例:计数用(获取用户的PV访问量),比如:你打开一个APP,系统可以计算并记录你访问每一个页面的次数。一进入系统,就可以用Static声明变量,比如:public static int m_click=0; 每访问一个页面,在页面的代码中让这个变量加1。
其次,是减少变量的重复定义,另外,调用也比较方便,不需要再定义和声明。
最后,列出了其他文章关于static的用法:
- 修饰变量,把它变成类的成员,大家可以共享使用。
- 修饰方法,可以直接用"类.方法名()”来调用。
- 修饰代码块,把多个类成员放在一起初始化,注意:每次用NEW声明对象时,就自动执行,但只会执行一次。
- 静态导包,把类的方法直接导入到当前类里,可直接用“方法名()”调用类。
package HELLO;
public class helloword {
public static void main(String[] args) {
bian uuu=new bian();
System.out.println("声明再调用,麻烦而且还多占用内存:"+uuu.m);
System.out.println("直接调用显示i的值:"+bian.m);
}
}
二、用static修饰【静态变量】
主要用于一个类(.java文件内)中的应用,一般在第一行。其实,刚开始,我一直有一个疑问,那不加static不是也能定义变量吗?为什么要加?后来测试发下,如果不加static,在static的静态方法或函数中是不能调用的。你看一看下面的例子就知道了。
package HELLO;
public class helloword {
// 注意:用 static都 是在类的最前面,这样可以被下面的方法和函数调用,造成不要放在方法里。
static int i=0; // static静态变量
public int u=0; // 不带static的变量
void shuxue() // 在这个方法中可以调用i,也可以调用u,没毛病。
{
i++;
u++;
System.out.print("小类!"+i);
}
// 注意,main()前面有static,但是他不能调用没有加static的变量u,但可以调用i,
public static void main(String[] args) {
i++; // 调用加了static的i没毛病。
// u++; 但是u不行,会报错的。
System.out.print("显示i的值:"+i);
}
}
三、用static修饰【静态方法】
1、实例,直接调用静态方法
package Book;
public class book {
public static void print() // 显示内容
{
System.out.println("水浒传:66元");
}
public static void main(String[] args)
{
book.print(); // 直接调用,在其他类中也是直接调用的。
}
}
四、用static修饰【代码块】
package Book;
public class book {
// ================== 静态代码块
static
{
System.out.println("类初始化块");
int age = 20;
}
public static void print() // 显示内容
{
System.out.println("水浒传:66元");
}
public static void main(String[] args)
{
book m_book1= new book(); // 只要对象化类,就自动执行static的代码块。
book m_book2= new book(); // 但是,只执行一次。
}
}