zoukankan      html  css  js  c++  java
  • Java中的static关键字

    1.static可以用来修饰类的成员:成员变量和成员方法

    2.static修饰的类成员的特点:

    • 随着类的加载而加载,随着类的消失而消失,也就是说它的生命周期最长。
    • 优先于对象的存在,静态先存在,对象后存在
    • 被所有对象共享
    • 可以直接被类名调用,也可以用对象调用

    3.实例变量和类变量的区别:

    • 实例变量存与对象一起,存在与堆内存
    • 静态变量随着类的加载而存放与方法区内存(共享区内存)

    注意:

    • 静态变量和静态方法是属于类的,而不是属于对象的。类的不同的对象可以共享静态变量和静态方法。
    • 这里我们要注意类和对象的区别。
    • 静态成员是先于对象而存在的,因为静态成员属于类所有。

    比如,下面的代码中,write()是个静态方法,它就不能调用name这个非静态变量。

    因为name不是静态的,它属于对象,当我们用Person.write()或者Person.name去调用时,对象还不存在呢。

    class Person {
    
        private String name;
        static String country = "大唐";
    
        public static void write() {
            System.out.println("国家:" + Person.country);
            System.out.println("诗人:" + name);
        }
    
        public void speak() {
            System.out.println("长恨歌:在天愿做比翼鸟,在地愿为连理枝。");
        }
    
    }
    
    
    class PersonTest {
        public static void main(String[] args) {
            Person.write();
    
        }
    }

    如果把改成下面的this.country,IDEA会直接报错提示,这个country是静态变量需要通过Person.name去访问。

    访问name是可以写成Person.name也可以不加Person,直接写name也是可以的。

    public static void write() {
            System.out.println("国家:" + this.country);//this在这里是错误的,因为this代表对象而不是类
           // System.out.println("诗人:" + name);
        }
  • 相关阅读:
    Hibernate 与 mybatis 区别
    Struts2 核心流程
    java 面试 -- 4
    无线电日记 2
    ham 无线电笔记
    Our Deepest Fear
    随笔
    GSM学习笔记
    网络时代的悲哀:微软百科全书
    [转载]arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别
  • 原文地址:https://www.cnblogs.com/majestyking/p/12384831.html
Copyright © 2011-2022 走看看