• 《数据结构:从应用到实现 java版》---第六天


    练习:

    static:方便在没有创建对象的情况下调用域或者方法

    比较好的博客:https://www.cnblogs.com/dolphin0520/p/3799052.html

    E1.2 概述static域的所有用途

      static域为类的所有对象所共有,在内存中只存在一个副本,它当且仅当类在初次加载的时候会被初始化;可以通过类直接进行调用。静态成员变量虽然独立于对象,但是仍然可以通过对象去访问

      非static域是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

      static不能用来修饰局部作用域

    E1.3 概述static方法的可能使用

      static方法可以通过类名直接进行调用。

      1. static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的;而且可以在没有创建任何对象的情况下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途

     2. static方法可以用来优化程序性能,因为只会在类加载时执行一次,适用于只创建一次对象可以多次使用的场景。

    E1.4 静态方法可以引用它所在类的非静态域吗?请说明,非静态方法可以引用静态域吗?请说明

       (1)静态方法不可以引用它所在类的非静态域,因为非静态域的使用需要通过类的对象进行调用,静态方法是直接用类名进行调用的。

              静态方法在构造方法之前执行,非静态域需要在对象创建的时候进行初始化,也就是说非静态域要在对象出现以后才能调用,但是非静态块是在构造函数之前执行的,所以此时对象都还没有产生,所以无法调用非静态域。

         (2)  非静态方法可以引用它所在类的静态域,因为可以通过类名进行直接调用。

    E1.5 在定义类时,把一种特殊域定义为public总是安全的,为什么?

        可以被继承

    E1.6 从最不严格到最严格排序访问控制级别:public 包访问 protected protected 包访问 private

    public:

           1. public修饰类,可以在不同的包之间被使用

           2. public修饰域,可以在本类中使用在类可以被访问的地方都是可以使用的,可以被继承

           3. public修饰方法,可以在本类中使用在类可以被访问的地方都是可以使用的,可以被继承

    protected:protected域或方法或类对子类是可继承的,而且对于同一个包中的类是可访问的在默认包访问权限的基础上,其他包中子类也可以访问。

    包访问权限:没有任何修饰符修饰的域/方法/类,可以被同一个包中的所有类访问和继承。而这个包外面的任意类都不能访问或继承它。

    https://blog.csdn.net/wanghao_0206/article/details/52710094

  • 相关阅读:
    构建简单的二叉树(C)
    C指針淺析(3)
    C語言函數
    C# 細節(2)
    如何做好软件架构设计
    C# 細節(1)
    .NET Framework格式化字符串
    Windows下通过删除硬盘分区直接强行移除Fedora后恢复Windows启动项的方法
    DreamWeaver使用技巧学习心得
    MyEclipse使用心得、快捷键、设置
  • 原文地址:https://www.cnblogs.com/piaxiaohui/p/9508944.html
Copyright © 2020-2023  润新知