zoukankan      html  css  js  c++  java
  • 04 对象与类

    类是构建对象的模板或蓝图.

    所以, 通常是, 一个TotalTest类含有main方法, 用来启动程序 等等, 剩下的其他类, 就好比C的 struct+method() 封装在一起.

    类之间的关系:

    依赖:( Uses-a), 应该尽量减少类之间的相互依赖, 如果类A不知道B的存在, 它就不会关心B的任何改变, 软件术语叫 耦合度小.

           ( 只是在一个类中使用了另外的类, 并不表示类A需要有实例变量是类B的类型 )

    聚合: (has-a), 聚合关系意味着类A对象包含类B的对象.

    继承:(is-a)

    UML 图形表示:

    接口继承: 并非是实现接口, 而是想类一样, 定义接口A, 再定义接口B, 然后让接口B extends A, 是这样的关系, 比如你定义了一个接口A, 后来发现接口A中得方法不够使用, 如果这时你增加方法的话, 那么以前你写的程序使用到这个接口的, 都需要修改, 因为java规定在实现接口时, 必须实现接口里的全部方法, 此时你就可以增加一个接口B extends A, 然后把想要新增加的方法放在接口B里.

    关联和直接关联, 其实聚合也是关联的一种, 其实也没有必要把关系搞的那么清楚, 在UML途中, 最重要和常用的关系就是以上的几种关系.

    多个源文件的编译

    比如两个源文件, Employee.java 和 EmployeeTest.java, 有两种编译办法,

    1. javac Employee*.java

    2. javac EmployeeTest.java, 当java编译器发现 EmployeeTest.java使用了Employee类时会查找名为Employee.class文件, 如果没有找到, 就会自动搜索Employee.java并编译它, 更重要的是, 如果 Employee.java版本较已有得 Employee.class文件版本新, java编译器会重新编译Employee.java.

    类似 unix 的 "make" 工具

    包作用域

    public : 公共访问

    private : 私有的, 本身类里边可以访问

    如果没有指定public, private的, 那么可以被同一个包中得所有方法访问. (一般很少使用, 都使public 或 private), 包作用域的方法和instance变量是可以被继承的.

    类路径

    1. 类存储在文件系统的子目录中(即 本机中) 类路径必须与包名匹配.

    2. 类文件也可以存储在 JAR(JAVA归档)文件中, 很多第三方库文件就是使用这种, 在一个JAR文件中, 可以包含多个压缩形式的类文件和子目录.

    为了使类能够被多个程序共享, 需要做到以下几点:

    1) 把类放到一个目录中, 例如: /home/user/classdir, 需要注意的是, 这个目录是包 树状接口的基目录. 如果希望 com.horstman.corejava.Employee类添加到其中, 这个 Employee.class类文件就必须位于子目录 /home/user/classdir/com/horstman/corejava/ 中.

    2) 将 JAR 文件放在一个目录中, 例如: /home/user/archives

    3) 设置类路径 (class path), 类路径是所有包含类文件的路径的集合.

    设置类路径

    编译时, 可以通过设置 classpath 来制定类路径, java -classpath 路径 a.java

    方法注释:

    @param variable description

    @return description

    @throws class description

    通用注释:

    @authur name

    @version text

    @since text

    @deprecated text ( 不再使用注释 )

    @see reference

    注释的抽取: eclipse 可以自动抽取, 也可以使用命令 javadoc -d 路径 包名

    类设计技巧

    1) 一定要将数据设计为 private

    2) 一定要对数据初始化

    3) 不要在类中使用过多的基本数据类型

    4) 使用标准格式进行类的定义

    书写顺序:

    共有访问特性部分

    包作用域访问特性部分

    私有访问特性部分

    在每一部分中, 应该按照下列顺序列出:

    实例方法

    静态方法

    实例域

    静态域

    5) 将职责过多的类分解

    6) 类名和方法名能够体现它们的职责

  • 相关阅读:
    linux查询php.ini位置
    laravel打印完整SQL语句
    python识别图片中的文字
    python -使用pytesseract识别文字时遇到的问题
    python弹出选择文件的弹出窗获取文件方法
    python将字符串中多个空格换为一个空格
    python生成word文档
    linux下tar命令
    python使用xpath获取内容
    正则表达式匹配空行
  • 原文地址:https://www.cnblogs.com/moveofgod/p/3774384.html
Copyright © 2011-2022 走看看