zoukankan      html  css  js  c++  java
  • Static关键字的用法

    Static关键字

    标签: Java


    Static的关键用法,包括Static修饰的变量/属性,或者是Static修饰的方法。
    首先,我们看一下下面的代码,以及代码中的注释:
    代码

    package com.itsme.staticMethod;

    public class UseStaticMethod {
             static int base=0;//使用static修饰的变量为类变量,
             类变量是类级别,就是说这个类的对象共享这个变量/属性。
             int variable=10;
         public static void StaticMethod(int a){    //类方法
        	UseStaticMethod usm=new UseStaticMethod();
        	usm.comMethod(a);
    	    UseStaticMethod.StaticMethod1(a+UseStaticMethod.base);
    	    StaticMethod(a+base);
        	System.out.println("类方法被调用"+a);
        	//类方法中不能调用非类方法
        	//UseStaticMethod.comMethod(a);这种写法是错误的
    	    //类方法中可以调用类方法和类变量,比如下面这行
        	UseStaticMethod.StaticMethod(a+base);
    	
      }
      
        public void  comMethod(int a){
    	     UseStaticMethod.StaticMethod(a);
      //非类方法中可以使用类方法和类变量
      }
      
      
        public static void StaticMethod1(int a){
    	  //同StaticMethod中的用法一样,这里不再写代码;
        }
      }
    
    Static关键字修饰的变量叫类变量或者静态变量。其实类变量实在程序加载的时候创建的,先于类的所有对象创建。使用类变量的时候,不需要使用对象调用而是可以直接使用类名。
    Static关键字修饰的方法叫做类方法或者静态方法。类方法可以直接通过类名直接调用,比如:
    
    UseStaticMethod.StaticMethod(a+base);
    

    类方法中不能使用this关键字,因为this关键字代表当前类的对象,当方法是对象级别的时候可以用this关键字调用,但是类方法是类级别的,所以不能用this关键字。
    非类方法中可以使用类方法和类变量,比如:

     UseStaticMethod.StaticMethod(a+base);
        comMethod(base);
       
     //类方法中不可调用非类方法,比如:
     comMethod(a);//错误,这种写法是不允许的
     //正确的写法如下
     UseStaticMethod usm=new UseStaticMethod();
     usm.comMethod(a);
     //通过对象来调用非类方法以及使用非类变量
    

    PS:Static 静态代码块会在类加载的时候直接执行:

    static{
        ...
        ...
    }
    

    以上就是Static关键字的使用方法。

  • 相关阅读:
    C语言博客作业06--结构体&文件
    C语言博客05--指针
    C语言博客作业04--数组
    LeetCode错题集
    C博客作业--指针
    深入浅出强化学习:原理入门(待更新)
    Detectron2环境配置+Ubantu+CUDA10.1+pytorch1.7.0
    论文记载:A Survey on Traffic Signal Control Methods
    论文记载:FRAP:Learning Phase Competition for Traffic Signal Control
    周博磊老师强化学习纲领笔记第三课:无模型的价值函数估计和控制
  • 原文地址:https://www.cnblogs.com/It_sMe/p/5451874.html
Copyright © 2011-2022 走看看