zoukankan      html  css  js  c++  java
  • [Java] 第三章 面向对象总结

      * 第三章总结 {
      	* 内存分析贯穿始终
      		* 对象和类的概念
      		* 类 (对类) 之间的关系
      		* 面向对象设计思想
      		* class
      		* new
      			* 引用的概念
      			* 构造方法的概念
      		* 方法重载
      			* 构造方法重载
      		* this
      		* static
      		* package & import
      		* private default protected public
      		* extends
      		* overwrite
      		* final
      		* Object
      			* toString
      			* equals
      		* upcasting downcasting
      		* polymophysm / dynamic binding / late
      		* abstract class
      		* interface
      			* implements
      	}
    第三章 面向对象
     *1, 成员变量有初始值。java 你写了构造方法,它就不会再给你提供默认的构造方法了。
     1)  定义类 -> 对象  /  定义方法 -> 调用
     2)  static 知道了内存,你就知道了一切!
          局部变量分配在栈内存
          成员变量分配在堆内存
         static 变量为类对象的共享的变量 在数据区
      字符串常量在 数据区
      非静态变量 专属于某一个对象
      静态方法不再是针对某一个对象进行调用, 所以不能访问非静态成员。
    3) {
        * package / import   package 包名起名字方法 : 公司域名倒过来!
        * 必须class文件的最上层包的父目录位于classpath下。
        * 执行一个类需要写全包名。
        rt.jar 
      * J2SDK 中主要的包介绍  java.lang特殊,使用不需要引入
        * java.lang - 包含一些 java 语言的核心类, 如 : String, Math, Integer, System, Thread.
        * java,awt  - 包含了构成抽象窗口工具集 (abstract window tookit) 的多个类
        * java.applet-包含applet运行所需的一些类
        * java.net  - 包含执行与网络相关的操作的类
        * java.io   - 包含能提供多种输入/输出功能的类
        * java.util - 包含一些实用工具类.
      }
      equals的重写
      对象转型 {
       *1 基类引用可以指向子类对象
       *2 一个基类的引用不可以访问其子类对象新增加的成员
       *3 可以使用引用 变量 instanceof 类名 来判断该引用型变量所指向的对象是否属于该类或该类的子类
       *4 子类的对象可以当作基类的对象来使用称作向上转型,反之称为向下转型
      }
      把自己的文件打成 jar 文件方法 {
        在最上级包的上一层执行 jar -cvf test.jar *.*
      }
      怎么样把 jar 包 放在classpath下面,别人好能用。 {
        设置 classpath 并包括那个 jar 文件
      }
      * 类的继承与权限控制 {
        分析内存 - 子类对象包含一个父类对象。。。
        访问控制 {
            * 修饰符      类内部     同一包内      子类     任何地方
            * private      Yes
            * default      Yes         Yes
            * protected    Yes         Yes         Yes
            * public       Yes         Yes         Yes         Yes  
        }
      }
      * 方法的重写 {
         重写方法不能使用比被重写方法更严格的访问权限 -- 其实这和多态有关
      }
      * super 关键字 
      * 继承中的构造方法 {
            如果调用 super 必须写在构造方法的第一行
            如果没调用,系统自动调用 super(), 如果没调,父类中又没写参数为空这个构造方法则出错。
        }
      * Object 类 {
        instanceof 是一个操作符
        TestEQ 非常重要!
        equals方法 J2SDK 提供的一些类 如 String , Date 重写了Object 的 equals() 方法。
      }
      * 对象转型 casting {
        * 一个基类的引用类型变量可以指向 “其子类的对象”。
        * 一个基类的引用不可以访问其子类新增加的成员
        * 可以使用 引用 变量 instanceof 类名 来判断该引用型变量所"指向"的对象是否属于该类或该类的子类。
        * upcasting / downcasting
            内存分析 - 明白了内存你就明白了一切!
            可扩展性比较好。。。
      }
      * 动态绑定, 池绑定, 多态 {  是在执行期间,不是在编译期间
        动态绑定的机制 是 实际类型 new 的是!
        深一点 -- 是对象内部有一个指针。。。。。。
        动态绑定的机制是 : 实际类型,还是引用类型。是调用实际类型,不是引用类型。
        实际地址才会绑定到那个方法上。 方法在  code segment
        只有在运行期间(不是在编译期间),运行出对象来,才能判断调用哪一个。。。。
        带来的莫大好处 。。。 是可扩展性达到了非常非常的极致好!
        ——————————————————————————————————————————————————————————————————————————————————————
        这是面向对象核心中的核心。核心中的核心。! 面试 : 举例子 并且内存分析之间你小子来吧!
        ——————————————————————————————————————————————————————————————————————————————————————
        多态小总结 : {
            1, 要有继承
            2, 要有重写
            3, 父类引用指向子类对象
        }
        "雷电那个游戏"
        * 抽象类
        * final 关键字
            * final 类,方法,变量
            例如: public final class String
                         public final class Math
        * 接口 -- 一种特殊的抽象类 {
                * 其中的变量全部都是 public static final int id = 1; 避免 C++ 中的问题
                            方法全部都是抽象方法
                * 每个接口暴漏了我们这个对象的一部分方法。
                * java.lang - Comparable 我看就像 cmp 一样!(个人认为)
                      Interface Comparable<T> 可以扩展
                * 接口与接口之间也可以相互继承
                      类与接口只能 是 实现关系
                      忠孝两难全!鱼和熊掌不可兼得!
         }
         * 总结 {
            * 内存分析贯穿始终!
         }      
    }
    

  • 相关阅读:
    PTA L2-026 小字辈 (25分)
    Python自学-day36(前端框架--VUE)
    WebGoat教程学习(七)--XPATH 注入(XPATH-Injection)
    WebGoat教程学习(六)--日志欺骗(Log Spoofing)
    WebGoat教程学习(五)--并发(Concurrency)
    WebGoat教程学习(四)--代码质量
    WebGoat教程学习(三)--Ajax安全
    WebGoat教程学习(二)--文件权限控制
    WebGoat教程学习(一)--环境配置
    Java排错随笔
  • 原文地址:https://www.cnblogs.com/robbychan/p/3786583.html
Copyright © 2011-2022 走看看