• 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) 类名和方法名能够体现它们的职责

  • 相关阅读:
    ZOJ 2158 Truck History
    Knight Moves (zoj 1091 poj2243)BFS
    poj 1270 Following Orders
    poj 2935 Basic Wall Maze (BFS)
    Holedox Moving (zoj 1361 poj 1324)bfs
    ZOJ 1083 Frame Stacking
    zoj 2193 Window Pains
    hdu1412{A} + {B}
    hdu2031进制转换
    openjudge最长单词
  • 原文地址:https://www.cnblogs.com/moveofgod/p/3774384.html
Copyright © 2020-2023  润新知