美文网首页
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