zoukankan      html  css  js  c++  java
  • 【Java基础】static关键字

    static关键字

    场景

    创建类的时候,就是在描述类的对象的外观和行为,除非new创建类的对象,否则没有获得任何对象。执行new创建对象,数据存储空间(new对象在堆中)才会分配,其方法才能供外面调用。

    但是,两种情况上述方法无法解决

    • 只想为某个特定域分配单一存储空间,而不考虑创建对象(static属于静态变量,位于方法区中
    • 希望某个方法不与包含他的那个类的任何实例对象关联在一起,也就是没有对象也能调用(static可以使用类名调用

    示例

    public class Demo {
        int id;
        static int sid;
        public void a() {
            System.out.println ("---------a");
            System.out.println (sid);
            System.out.println (id);
        }
    
        //1.static和public 是修饰符,并列的没有先后顺序,先写谁都可以
        static public void b() {          //sid 是先于对象加载的
          //  a();//3.在静态方法中不能访问非静态方法
            System.out.println ("---------b");
            System.out.println (sid);
           // System.out.println (id);//2.在静态方法中不能访问非静态的属性
           // System.out.println (this.id);//4.在静态方法中不能使用this关键字
        }
    
        public static void main(String[] args) {
            Demo d = new Demo();
           // Demo.a();//5.非静态的方法可以用对象名.方法名去调用,不能用类.方法名
            d.a ();
    
            Demo.b ();//6.静态的方法可以用对象名.方法;类名.方法名(推荐)去调用
            d.b ();
            
            b();//在同一个类中可以直接调用
        }
    }
    

    总结

    虽然static作用于某个字段时,肯定会改变数据创建的方式(因为一个static 字段对每个类来说只有一份存储空间,而非static字段则是每个对象有一个储存空间)static方法重要用法是在不创建任何对象的前提下就可以使用它。

    • 以上内容是基于——《java编程思想》总结的,学习加深在进行补充 。
    悲观者正确,乐观者成功
  • 相关阅读:
    Nightmare Ⅱ HDU
    Full Tank? POJ
    2601 电路维修 (双端队列bfs优先队列bfs(最短路))
    Sudoku POJ
    Pushing Boxes POJ
    2501 矩阵距离 (bfs)
    【排序】绝境求生
    【排序】逆序对IV
    【排序】紧急集合
    【排序】常用排序法
  • 原文地址:https://www.cnblogs.com/freebule/p/13532480.html
Copyright © 2011-2022 走看看