Logo

郎哥编程

静态变量和静态方法

2019-12-12 996

Java虚拟机运行Java程序时,会加载类到内存(类并没有被实例化),此时因为类没有被实例化,还不能访问类的成员变量和成员方法,但在类中声明的静态变量和静态方法是可以访问的,因为静态变量和静态方法在类加载时就完成了内存的分配。

在类中声明静态变量和静态方法,需要使用static关键字,被static关键字修饰的变量和方法称为静态成员。

声明类静态变量的语法如下:

static datatype variable;

其中,static是静态关键字,datatype是数据类型,variable是变量名称。

声明类静态方法的语法如下:

static datatype method();

其中,static是静态关键字,datatype是方法返回数据类型,method是方法名称。

案例1:在类中声明一个静态变量和一个静态方法。

在PbaseUnit13项目sample包下创建StaticSample类。代码如下:

/** 
* @Title: StaticSample.java 
* @Package sample 
* @Description: Java基础知识课程案例 
* @author 编程训练营 
* @date 
* @version V1.0 
*/ 
 
package sample;
 
/** 
* @ClassName: StaticSample 
* @Description:类(静态变量和静态方法)案例
* @author 编程训练营 
* @date 
* 
*/
 
public class StaticSample {
 
    // 声明一个静态变量
    static double PI = 3.14;
   
    // 声明一个静态方法
    static double getArea(double r)
    {
       return PI * r * r;
    }
}

程序结构分析

程序声明了两个静态成员:PI是静态变量,并赋值为3.14;getArea()方法是静态方法,形参r是圆的半径,该方法用于计算并返回圆的面积。

在PbaseUnit13项目sample包下创建StaticSampleTest类。代码如下:

/** 
* @Title: StaticSampleTest.java 
* @Package sample 
* @Description: Java基础知识课程案例  
* @author 编程训练营 
* @date 
* @version V1.0 
*/ 
 
package sample;
 
/** 
* @ClassName: StaticSampleTest 
* @Description: Java基础知识课程案例 
* @author 编程训练营 
* @date  
* 
*/
 
public class StaticSampleTest {
 
    /** 
    * @Title: main 
    * @Description: Java程序入口main方法 
    * @param @param args    参数 
   
    * @return void    返回类型 
    * @throws 
    */
 
    public static void main(String[] args) {
       // 计算圆的面积
       double dArea = StaticSample.getArea(5.0);
       System.out.println("圆的面积:" + dArea);
      
       //输出StaticSample类的静态变量PI
       System.out.println("PI = " + StaticSample.PI);
 
    }
 
}

程序结构分析

程序使用StaticSample类的静态方法getArea来计算圆的面积。因为StaticSample类和StaticSampleTest类在同一个包内,因此StaticSampleTest类不需要使用import语句来导入StaticSample类。

StaticSample类的getArea()方法是静态方法,无需实例化StaticSample类,直接使用StaticSample类名就可以调用getArea()方法。

StaticSample类的PI是静态变量,可以使用StaticSample类名来访问静态变量PI。


代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论