zoukankan      html  css  js  c++  java
  • static关键字修饰属性

    static 静态的,可以修饰属性,方法,代码块(或初始化块) , 内部内

    非static修饰的属性(实例变量):各个对象各自拥有一套各自的副本

    static修饰属性(l类变量):

                    1.由类创建的所有的对象,都共用一个属性

                    2.当其中一个对象对此属性进行修改,会导致其他对象对此属性的一个调用。

                    3.类变量随着类的加载而加载的。而且独一份

                    4.静态的变量可以直接通过 “类.类变量” 的形式来调用

                    5. 类变量的加载要早于对象,所以当有对象以后, 可以 "对象.类变量"  的使用,但是 "类.实例变量" 是不行的

                    6.类变量存在于静态域

    static修饰方法(类方法):

                     1.随着类的加载而加载,在内存中也是独一份

                     2. 可以直接通过  "类.类方法" 的方式来调用

                     3.内部可以调用静态的属性或者静态的方法,而不能调用非静态的,反之非静态的是可以调用静态的

                     4.静态的方法内不能有 this 或者 super 关键字

    注意:静态的结构(static的属性,方法,代码块,内部类)的生命周期要早于非静态的结构,同时回收也要晚于非静态的结构。生命周期比较长

    TestSportsMan:

    package com.aff.wrapper;
    
    public class TestSportsMan {
        public static void main(String[] args) {
            SportsMan s1 = new SportsMan("苗苗", 25);
            SportsMan s2 = new SportsMan("芳芳", 26);
            s1.name = "文静";
            s1.nation = "China";
            System.out.println(s1);
            System.out.println(s2);
            System.out.println(SportsMan.nation);// 类变量随着类的加载而加载的。而且独一份
            // SportsMan.show1();//无法直接调用
            SportsMan.show2();
        }
    }
    
    class SportsMan {
        // 实例变量
        String name;
        int age;
        // 类变量
        static String nation;
    
        public SportsMan(String name, int age) {
            super();
            this.name = name;
            this.age = age;
        }
    
        @Override
        public String toString() {
            return "SportsMan [name=" + name + ", age=" + age + ", nation=" + nation + "]";
        }
    
        public void show1() {
            System.out.println("我喜欢芳芳");
        }
    
        public static void show2() {
            System.out.println("我喜欢苗苗");
        }
    }

    输出结果:

    SportsMan [name=文静, age=25, nation=China]
    SportsMan [name=芳芳, age=26, nation=China]
    China
    我喜欢苗苗

     
    All that work will definitely pay off
  • 相关阅读:
    Xcode工程文件打不开:cannot be opened because the project file cannot be parsed
    MAC系统压缩文件传到WINDOWS下出现乱码
    iOS-Xcode必备插件XAlign:瞬间优化你的代码
    那些不能错过的Xcode插件
    Xcode 5.0.1安装插件:规范注释生成器VVDocumenter + OSX 10.9.2
    由pushViewController说起可能出线的各种死法
    iPhone开发中从一个视图跳到另一个视图有三种方法:
    深入理解typedef
    通俗易懂地讲解 __block 变量
    Blocks Programming Topics
  • 原文地址:https://www.cnblogs.com/afangfang/p/12523602.html
Copyright © 2011-2022 走看看