• 面向对象 静态篇


    静态 可以修饰类 也可以修饰类的成员(属性和方法)
    static (静态)
    静态是在堆内存中创建一块存储区域,将相同的属性放在同一个区域里
    非静态:
    注意:
    1.非静态的成员属性对象必须通过一个new 出来的对象才能访问
    2.非静态的属性对象每个各持一份

    静态的属性在所有对象创建之前就在内存中存在了
    静态的属性不能通过对象访问 已经 不再属于具体的某个对象而是属于所有的对象,属于类的类名、属性

    类名.属性
    使用场合:当某个属性不属于某一个对象
    静态的方法:
    静态的方法不能通过对象调用 基于类来调用
    静态方法不能访问非静态方法
    而在非静态的是可以访问静态的成员
    工具方法适合做静态
    静态类不能被实例化
    一旦创建了静态类,类中的属性和方法必须是静态的。而没有加静态,则可以写非静态和静态的混合。

    设计模式:
    单例模式:
    只能允许一个控制所有的对象,类似管理员或者导演的角色。
    步骤:
    1.构造方法私有化
    2.提供一个静态的本类的一个字段 属性
    3.提供一个公开的静态方法返回创建对象(在方法里通过一定的逻辑来控制)
    例子:
    public class Class2
    {

    private static Class2 dx; //创建一个私有化单例引用
    public static Class2 ff() //创建一个公开的方法 并且在堆内存中建立一块静态的存储区域。
    {
    if (dx == null)
    {
    dx = new Class2(); // 创建一个新的dx引用。

    }
    return dx; //并返回一个dx引用,返回的引用指向同一个堆中的地址,原有的引用销毁。


    }

    public List<int> list { get; set; }
    private Class2()
    { //在class2创建出来的时候初始化一个list 泛型集合并且指向这个类的集合
    list = new List<int>();

    }

    }
    }
    注:
    通过单例模式设计的对象无论怎么创建都是一个对象,且都只访问这个对象的值。

     

  • 相关阅读:
    【原】从/dev/null重新打开标准输出
    Go 接口转换的一个例子
    关于软件编译安装的出错处理
    【原】GO 语言常见错误
    HP平台由于变量声明冲突导致程序退出时的core
    动态链接库加载出错:cannot restore segment prot after reloc: Permission denied
    Windows VC++常见问题汇总
    .net:System.Web.Mail vs System.Net.Mail应该用哪个
    网络管理的功能
    Hello World! — 用 Groovy 编写的 Java 程序
  • 原文地址:https://www.cnblogs.com/liyiyong/p/5102839.html
Copyright © 2020-2023  润新知