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编程思想》总结的,学习加深在进行补充 。
    悲观者正确,乐观者成功
  • 相关阅读:
    Linux Core Dump
    ODP.NET Managed正式推出
    获取EditText的光标位置
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1028 数的计算
  • 原文地址:https://www.cnblogs.com/freebule/p/13532480.html
Copyright © 2011-2022 走看看