专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Java静态变量概述

Java静态变量概述

更新时间:2020-10-29 17:24:10 来源:动力节点 浏览732次

虽然java编程是一门实操性的技术,但是理论知识对于学好java来说也是十分重要的。变量是是java零基础的人在入门阶段需要学习的重点内容,今天这篇文章带大家来学习java静态变量的相关知识,学习静态变量是什么,有什么特点以及怎样使用,一起来看下面的内容吧。


先来看java静态变量是什么,静态变量:内存中只有一份,Java虚拟机(JVM)只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配。由于静态变量属于类,与类的实例无关,因而可以直接通过类名访问这类变量。通过类名.属性的方式访问静态变量。

image.png


与静态变量相对应是静态方法,静态方法:方法前加static修饰符,表明该方法与某个具体实例无关,仅仅是该类的一个公共方法。通过类名.方法的方式访问静态方法。静态变量和静态方法都属于静态对象,那么java静态对象有什么好处和优点呢?


(1)静态对象的数据在全局是唯一的,一改都改。如果你想要处理的东西是整个程序中唯一的,弄成静态是个好方法。 非静态的东西你修改以后只是修改了他自己的数据,但是不会影响其他同类对象的数据;(2)引用方便。直接用 类名.静态方法名或者类名,静态变量名就可引用并且直接可以修改其属性值,不用get和set方法;(3)保持数据的唯一性。此数据全局都是唯一的,修改他的任何一处地方,在程序所有使用到的地方都将会体现到这些数据的修改。有效减少多余的浪费。

使用java静态变量的优点:不需要在进行bai实例化。静态变量的值,直接赋新值即可,不需要参数传递,之后可以直接进行参数引用即可;静态方法可以直接通过"类名.方法"的形式进行方法调用。通常方法被多次调用,并且方法中没有动态方法引用的时候使用比较方便。


下面是一个静态变量的例子,代码如下:


class c1c {

    private static int num = 0;

    private static double pi = 3.14;

    private double radius;

    private int height;

    public c1c(double r,int h)

    {

        radius = r;

        height=h;

        num++;

    }

    public void count()

    {

        System.out.print("创建了"+num+"个对象");

    }

    double area() {

        return pi*radius*radius;

    }

    double volume() {

        return area()*height;

    }

}

public class cc{

    public static void main(String[] args)

    {

        c1c volu1=new c1c(2.5,5);

        volu1.count();

        System.out.println("圆柱1的体积="+volu1.volume());

        c1c volu2=new c1c(1.0,2);

        volu2.count();

        System.out.println("圆柱2的体积="+volu2.volume());

    }

}

image.png


本例中声明了一个静态变量num用于记录程序中共产生了多少个对象,因为对象创建时会自动调用构造方法,所以在构造方法中加入了“num++;”语句,这样每创建一个对象就调用一次构造方法,从而每产生一个对象,num的值就会自动加1,此时,因为静态变量是一个公共的存储单元,所以类的任何一个对象去修改它时,都是在对同一个内存单元做操作。去掉声明num的static后:private int num = 0。

image.png


可以看到num的值没有变化,这是因为num成为实例变量后,对创建的不同对象来说,都有自己独立的内存来保存它的值,且不与其他对象共享,因此若修改了volu1的num值,volu2的num并不受影响。


以上就是对java静态变量相关知识的介绍,都是关于java静态变量的基础内容,所以希望大家认真学习,也希望上面的内容能帮助朋友们理解静态变量,同时可以在java教程中学习java静态变量的使用。


提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>