首页 > 其他分享 >static 用法总结

static 用法总结

时间:2022-09-26 19:14:50浏览次数:64  
标签:总结 调用 静态方法 变量 静态 用法 static Id

static可以修饰静态成员

 1.静态变量:

class Student{
            static String Id;
}
public class Demo{
        public static void main(String[] args){
            Student.Id="2000";//不创建对象就可以访问变量
            Student stu1=new Student();//创建学生对象
            Student stu2=new Student();
            System.out.println("我的号码:"+stu1.Id);//两个对象可以共享静态变量
            System.out.println("我的号码:"+stu2.Id);
            /*如果没有static修饰的变量,则应该给每一个对象都要进行赋值操作:
            stu1.Id="2000";
            stu2.Id="2000";
            System.out.println("我的学校:"+stu.Id);
            System.out.println("我的学校:"+stu.Id);
            */`

          

           某些特定的数据在内存中只有一份,而且能被一个类的所有实例对象共享。

           可以使用类名.变量名的形式来访问。当然也可以先实例化对象在用对象.变量名访问
           static关键字只用于修饰 成员变量,不能用于修饰局部变量

           静态成员变量可以通过类直接访问

           非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响

           非静态成员变量必须要创建实例后才能访问

2.静态方法

class Person{
    public static void hello(){
        System.out.println("Hello");
    }
}
public class Demo{
    public static void main(String[] args){
        Person.hello();//直接用类名调用
        
        Person person=new Person();//也可以通过实例化对象调用
        person.hello();
    }
}

 

          调用静态方法时可以不用创建对象,用类名.方法名() 来调用方法

          在静态方法中只能访问静态成员(静态变量或者静态方法),不能访问非静态成员

3.静态代码块

        static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。

注意事项

  1. 独立于类

  2. 在类加载的时候执行,只执行一次

  3. 修饰的方法只在调用时执行

关于static使用的注意事项

1.static方法:方法体内可以调用其他静态方法,不能调用非静态方法;只可以访问方法外部的static变量;不能定义静态变量,可以定义非静态变量。
2.非static方法:方法体内部不能定义static变量;能调用static方法;能调用非static方法。
3.static关键字只能用于修饰成员变量,不能修饰局部变量(如形参、方法体内部变量)。

本次博客有关内容来自
          https://blog.csdn.net/Ambition_ZM/article/details/101705741

标签:总结,调用,静态方法,变量,静态,用法,static,Id
From: https://www.cnblogs.com/jiacheng-712/p/16732016.html

相关文章

  • 32nd 2022/8/5 模拟赛总结21
    这次问题所在是卡常,优化以及DP,和组合数嗯,还有如T3样子的DP,一脸懵逼,因为根本看不出来是DP,只觉得与组合数有些联系还有阔别已久的矩阵乘法,再次回归,需要复习,可以将前面的矩......
  • 35th 2022/8/9 模拟赛总结24
    这次可还行?又是发呆2h,然后亿脸懵逼,但是居然没有掉下去难道我的实力真的上来了?!!这一个暑假眼看就在机房中见到了尽头——8/17,然后作业也直接选择“鬼压床”,上来硬刚,规划......
  • 34th 2022/8/8 模拟赛总结23
    这次赛时不错,因为这次T1直接拿下,T3常数小也拿到了最高暴力然后T2大家都懵逼,T4也get到了暴力,于是——rk1只能说NB了当然还是戒骄戒躁,其实这次是真的不错,因为还有几个DJ......
  • 33rd 2022/8/6 模拟赛总结22
    这次还是很逊,又考炸,T1都没签上到,T4没\(longlong\)->0,数据都没看清T1死在了边界条件,真烦,不过这也说明自己不够细心,以后需要注意才是T2是一道挺好想的东西,但T1调试过久,故......
  • 36th 2022/8/11 模拟赛总结25
    这次真的不好,比赛一开始,揪着T1不放,当时脑子还短路,没想到讲循环一个个压回去,就是坐在那不停地想:斐波那契数列该乘什么……根本就像在发呆一样,足足发了一个钟,然后突然想到,可......
  • 文件上传服务器项目总结
    需求:创建一个文件服务器;要求保存客户端上传的所有文件,100个并发,每个并发客户端上传文件100次以下是核心代码首先是客户端发送文件:for(sum=0;sum<size;)......
  • Xpath 高级用法
    xpath高级用法1.匹配当前节点下的所有:.//.表示当前//表示当前标签下的所有标签注:要配合使用2.匹配某标签的属性值:/@属性名称这里以input里的value值为例......
  • expect脚本远程登录、远程执行命令和脚本传参简单用法
    expect介绍:最近想写一个自动化安装脚本,涉及到远程登录、分发文件包、远程执行命令等,其中少不了来回输入登录密码,交互式输入命令等,这样就大大降低了效率,那么有什么方法能解......
  • Java学习路线总结,搬砖工逆袭Java架构师
    1.java类加载器架构2.JVM架构3.Java技术体系4.线程运行架构5.Java体系(编译与运行)结构6.JMS技术架构7.JMX技术架构8.Spring架构9.Hibe......
  • provide 和 inject 用法及原理
    在父子组件传递数据时,通常使用的是props和emit,父传子时,使用的是props,如果是父组件传孙组件时,就需要先传给子组件,子组件再传给孙组件,如果多个子组件或多个孙组件使用时,......