永发信息网

static 在哪用的到,以及为什么要用

答案:2  悬赏:0  手机版
解决时间 2021-02-10 23:25
static 在哪用的到,以及为什么要用
最佳答案
根据使用位置的不同,static可以用在以下位置,具体用法与特点见下详述:
1.静态全局变量
  在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。
  静态全局变量有以下特点:
  *该变量在全局数据区分配内存;
  *未经初始化的静态全局变量会被程序自动初始化为0(在函数体内声明的自动变量的值是随机的,除非它被显式初始化,而在函数体外被声明的自动变量也会被初始化为0);
  *静态全局变量在声明它的整个文件都是可见的,而在文件之外是不可见的;其它文件中可以定义相同名字的变量,不会发生冲突;
2.静态局部变量
  在局部变量前,加上关键字static,该变量就被定义成为一个静态局部变量。
  通常,在函数体内定义了一个变量,每当程序运行到该语句时都会给该局部变量分配栈内存。但随着程序退出函数体,系统就会收回栈内存,局部变量也相应失效。
  但有时候我们需要在两次调用之间对变量的值进行保存。通常的想法是定义一个全局变量来实现。但这样一来,变量已经不再属于函数本身了,不再仅受函数的控制,给程序的维护带来不便。
  静态局部变量正好可以解决这个问题。静态局部变量保存在全局数据区,而不是保存在栈中,每次的值保持到下一次调用,直到下次赋新值。
  静态局部变量有以下特点:
  *该变量在全局数据区分配内存;
  *静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化;
  *静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0;
  *它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束;
3.静态函数
  在函数的返回类型前加上static关键字,函数即被定义为静态函数。静态函数与普通函数不同,它只能在声明它的文件当中可见,不能被其它文件使用。
全部回答
1.用static修饰的属性称为静态属性,也称为类属性,是属于声明本静态方法的这个类的,而不是这个类的某个对象。
例子1:
class People
{
public People()
{}
static int age;
}
public class Test
{
public static void main(String[] args)
{
People.age=30; //注意这里是通过类名直接调用age属性的哦~
System.out.println(People.age); //这里也是,要是age属性没有static修饰
//就只能通过实类化的对象来调用。
}
}
//输出的结果是:30
2.用static修饰的方法,称为静态方法,也叫类方法,原理跟静态属性基本类似。
例子2:
class People
{
public People()
{}
static int age;
public static void method()
{
System.out.println("我的年龄是:"+age+" 岁");
}
}
public class Test
{
public static void main(String[] args)
{
People.age=30;
People.method(); //这里是通过类名直接调用method方法。
}
}
//输出结果是:我的年龄是:30 岁
3.静态代码块。
我们知道构造方法时优先与所有方法执行的,是在实类化对象的时候就调用了,有没有比构造方法还优先执行的方法或者是代码段呢?答案是肯定的,那就是静态代码块。
例子3:
class People
{
public People()
{
System.out.println("我是构造方法");
}
static//这就是静态代码块
{
System.out.println("我是静态代码块");
}
}
public class Test
{
public static void main(String[] args)
{
People people = new People(); //这里我们实例化一个People对象people
//目的是看看到底是谁先执行了。
}
}
输出为:我是静态代码块
我是构造方法
static 应用最多的地方就是这些了,希望对你有帮助。
PS:这是我在另一个问题中的回答,问题跟你类似,因为都是我写的,所以不算copy哦~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
万家商务宾馆汽车总站店停车场地址在哪,我要
天发副食品商店我想知道这个在什么地方
你好,我十六了,在洛阳上学,但是我现在也没
有没有生活在火山旁边的恐龙
爸爸在一个底面积为51平方分米的长方体鱼缸里
尚客优连锁酒店平行路店停车场怎么去啊,我要
淘宝第三方的外包托管靠谱吗?有没有人对这方
【皿字组词】皿加甚么部首是甚么字怎样组词人
卡西欧电子琴音乐教室地址在哪,我要去那里办
请问深圳大学有汉语国际教育研究生专业吗
秧田在哪里啊,我有事要去这个地方
阅读材料.回答问题.材料一? 黄炎培道:“我生
我租房子,可能是合租房,里面是用木材隔开的
长10米宽13米厚10公分混凝土用多少砂子石子水
停车场(汇龙·领秀城小区东南)地址在哪,
推荐资讯
马油上的for china是什么意思
以下哪项能源不是《可再生能源法》中列举的可
江西省境内有那些旅游景点冬天是不封山的?
乸 这个字怎么拼?
黎明唱的今夜你会不会来那个电视剧叫什么名?
君王2 安卓和IOS能一起玩吗
小助手家政(燎原路386)地址在什么地方,想过
那位大神有熊沐先生的武侠小说,可以分享给我
骆驼祥子 三,四章 阅读心得
个人性质的加油卡改成公司性质的加油卡的证明
去县级事业单位上班谁说了算
圆通快递薛家店地址在什么地方,想过去办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?