美文网首页
13.面向对象进阶—静态关键字static

13.面向对象进阶—静态关键字static

作者: 每天起床都想摆 | 来源:发表于2022-01-17 22:17 被阅读0次

面向对象进阶

静态关键字static

static关键字的作用,修饰成员变量的用法

  • static是静态的意思,可以修饰成员变量,表示该成员变量只在内存中只存储一份,可以被共享访问,修改

  • 成员变量分类:

    • 静态成员变量(有static修饰,属于类,内存中加载一次):常表示在线人数信息等这种需要被共享访问的信息

      • 访问方式:
        • 类名.静态成员变量 (推荐)
        • 对象.静态成员变量 (不推荐)
    • 实例成员变量(无static修饰,存在每个对象中):常表示姓名,年龄等属于每个对象的信息

      • 访问方式:
        • 对象.实例成员变量
      public class User{
        //静态成员变量
        public static String maxLimit = 160;
        
        //实例成员变量
        private String name;
        private int age;
        private double salary;
        
        public static void main (String[] args){
            //类名.静态成员变量
            User.maxLimit++;
            System.out.println(maxLimit);   //同一个类中访问静态成员变量,类名可以省略不写
              
              //对象.实例成员变量
              User u1 = new User();
              u1.name = "芜湖";
              System.out.println(u1.name);
        }
      }
      

static修饰成员变量的内存原理

image.png

static修饰成员方法的基本用法

  • 成员方法的分类

    • 静态成员方法(有static修饰,属于类),建议使用类名访问,也可以使用对象访问
    • 实例成员方法(无static修饰,属于对象)只能用对象出发访问
  • 使用场景:

    • 表示对象自己的行为的,且方法中需要访问实例成员的,则该方法必须申明成实例方法

      例如学生对象的学习,唱歌,跳舞这种属于对象自己的行为,方法中必须访问实例成员变量

    • 如果该方法是以执行一个通用功能为目的,或者需要方便访问,则可以申明成静态方法

      例如求两个数的最大值这种通用的功能性的方法

static修饰成员方法的内存原理

image.png

static实际应用案例:使用静态方法定义工具类

  • 对于一些应用程序中多次需要用到的功能,可以将这些功能封装成静态方法,放在一个类中,这个类就是工具类

  • 工具类的作用:一是方便调用,二是提高代码的复用

  • 建议将工具类的构造器私有,不让工具类对外产生对象(可以达到节约内存的目的)

    将构造器私有即为类创建私有的无参构造

  • 实例方法需要创建对象调用,此时使用对象只是为了调用方法,这样只会浪费内存,因此工具类不适用实例方法创建

static的注意事项

  • 静态方法只能访问静态成员,不可以直接访问实例成员(可以创建对象去访问)
  • 实例方法可以访问静态成员,也可以访问实例成员
  • 静态方法中不可以出现this关键字

相关文章

网友评论

      本文标题:13.面向对象进阶—静态关键字static

      本文链接:https://www.haomeiwen.com/subject/pgshhrtx.html