static关键字,静态变量,静态方法,静态代码块,静态导入

来源:互联网 发布:分期贷款软件 编辑:程序博客网 时间:2024/05/01 04:31

话不多说,直接上代码



package com.ufgov.controller;


import static java.lang.System.out; 
import static java.lang.Math.*;
import static com.ufgov.controller.base02.name;
/**
 * static 关键字作用就是在不用创建对象的情况下进行(方法/变量)的调用
 * static 不依赖对象进行访问,只要类被加载了,就可直接使用
 * static 用途:1,修饰成员变量
 *             2,修饰方法
 *             3,静态代码块
 *             4,静态导入
 */
public class base01 {

public static void main(String[] args) {
//静态变量直接调用
System.out.println(base02.name);//输出:xiaohei


//静态方法直接调用
System.out.println(base02.getName(base02.name));//输出:xiaohei1

//在添加静态代码块后执行main方法,打印出
/**
* 静态代码块执行
* xiaohei
* xiaohei1
*/
//静态代码块在类加载的时候就执行,所以更多的是用来优化程序,或者是加载资源


/**
* import static 包名.类名.静态成员变量;
* import static 包名.类名.静态成员函数;

* import static java.lang.System.out; 
* import static java.lang.Math.*;

* 静态导入就是把包中
*/
out.println(name);                                         //xiaohei      name就是导入的静态变量
System.out.println("静态导入"+round(100));//静态导入100     round是导入的静态方法 
}



}


class base02{
/**
* static修饰的变量为静态变量,静态变量与成员变量的区别为:
* 静态变量在内存中只存在一个,所有被所有对象共享,在类加载的时候进行初始化
* 成员变量在每次创建对象时都含有一个此成员变量的副本,互不影响
*/
public static String name="xiaohei";

public String address;

/**
* 静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,(this代表的是当前的类对象)
*/
public static String getName(String name){
return name+1;



/**
* 此段代码报错,因为静态方法中引用了非静态的成员变量
* 静态方法调用直接object.method调用,不用创建对象,既然没有创建对象,那么没有类的成员变量address,所以报错
*/
/*public static String getAddress(String address){
return this.address+2;
} */

static{
System.out.println("静态代码块执行");
}


}


//https://www.cnblogs.com/dolphin0520/p/3799052.html  也可参照此篇博文加深理解



阅读全文
0 0
原创粉丝点击