摘要:
Nested Classes定义在java语言规范里面,嵌套类(Nested Classes)定义是:A nested class is any class whose declaration occurs within the body of another class or interface. A top level class is a class that is not a nested class.说的简单一点,就是定义在类里面的类。一般把定义内部类的外围类成为包装类(enclosing class)或者外部类嵌套类分类根据nested class定义的地方,可以分为member 阅读全文
摘要:
命名空间是名称与对象之间的关系,可以将命名空间看做是字典,其中的键是名称,值是对象。命名空间不共享名称。在命名空间中的名称能将任何python对象作为值,在不同的命名空间中相同的名称可以与不同的对象相关联。但是,如果存在名称解析协议,则多个命名空间可以一起工作来解析名称。也就是说,如果有多个命名空间(总是有的),那么可以定义搜索的顺序,依次在不同的命名空间里来查找某个名称(或确认其不存在于任何认可的命名空间)。在python中,将这一过程定义为作用域。作用域搜索规则:LEGBL:局部的(local)E:封闭的(Enclosing)G:全局的(Global)B:内置的(Built-in)一、局部 阅读全文
摘要:
第十三条:使类和成员的可访问性最小 用于信息隐藏,尽可能的使每个类或者成员不被外界访问, 对于顶层的类和接口,只有两种访问级别:包级私有,和共有的, private:只有该类的内部才可以访问这个成员 包级私有:声明的成员在包内部都不可以访问,缺省型 protected:声明该类的包,和该类的之类都可以访问 public:在任何地方都可以访问 如果一个类覆盖了超类的一个方法,那么子类的访问级别一定不能比超类的访问级别低,如果一个类实现了一个接口的所有方法,那么接口中所有的方法都必须声明为共有的。 实例域绝不能是公有的,包含公有可变域的类并不是线程安全的 类具有共有的 静态fin... 阅读全文
摘要:
一. 移动: h,j,k,l: 左,下,上,右。 w: 下一个词的词首。 e:下一个词的词尾。 b:上一个词的词首。 : v 模式选中后进行缩进。二. 跳转: %: 可以匹配{},"",(),[]之间跳转。 H、M、L:直接跳转到当前屏幕的顶部、中部、底部。 #H:跳转到当前屏的第#行。 #L:跳转到当前屏的倒数第#行。 zt: 当前编辑行置为屏顶。 zz: 当前编辑行置为屏中。 zb: 当前编辑行置为屏底。 G:直接跳转到文件的底部。 gg: 跳转到文件首。 ():跳转到当前的行首、行尾。 {}:向上、向下跳转到最近的空行。 [{:跳转到目前区块开头。 ]}:跳转到目前区 阅读全文
摘要:
Ctrl+1快速修复(最经典的快捷键,就不用多说了)Ctrl+D:删除当前行Ctrl+Alt+↓复制当前行到下一行(复制增加)Ctrl+Alt+↑复制当前行到上一行(复制增加)Alt+↓当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑当前行和上面一行交互位置(同上)Alt+←前一个编辑的页面Alt+→下一个编辑的页面(当然是针对上面那条来说了)Alt+Enter显示当前选择资源(工程,or文件or文件)的属性Shift+Enter在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)Shift+Ctrl+Enter在当前行插入空行(原理同上条)Ctrl 阅读全文
摘要:
第三章:对于所有对象都通用的方法 第一条:覆盖equals方法请遵守通用的约定在下面中可以不考虑覆盖equals方法:(1).类的每个实例本质上是唯一的 枚举类型(2).不关心类是否提供了逻辑相等,的测试功能(3).超类已经覆盖了equals,从超类继承过来的行为对于子类也是适合的,(4).类是是私有的或包含所有的,实现equals方法要实现的等价关系:自反性,对称性,传递性,一致性里式替换原则(lis substitution principle),一个类的任何重要的属性也适用与他的子类型复合优于继承(5).非空性:所有的对象都不必须不等于null,public boolean equal. 阅读全文
摘要:
第二条:遇到多个构造器参数时,要考虑用构建器 静态工厂方法和构造器都不能很好的扩展到大量的可选参数,如果用构造函数,需要采用重叠构造器模式,缺点,当有很多参数时,客户端代码,很难调试,难以阅读, 第二种代替方法是JavaBean模式,缺点:构造过程被分到几个调用中,在构造过程中JavaBean,可能处于不一致的状态,而且阻止了把类变成不可变得可能, 第三种方法:Builder模式,能够保证像重叠构造器模式那样安全性,builder模式模拟了具名的可选参数,就像Ada和Python中的一样, 总结:如果类的构造器或者静态工厂方法中具有多个参数,设计这种类时,BUilder模式是个很好的选... 阅读全文
摘要:
第一条:考虑用静态工厂方法代替构造器 静态工厂方法与构造器不同的第一大优势是:它们有名称 静态工厂方法与构造器不同的第二大优势是:不必在每次调用它们的时候都创建新的对象 静态工厂方法与构造器不同的第三大优势是:它们可以返回原返回类型的任何子类型对象 API可以返回对象,同时有不会使对象的类变成共有的,这种技术适用与基于接口的框架(interface-based framework),接口为静态工厂方法提供了自然返回类型,接口不能有静态方法 静态工厂方法返回的对象所属的类,在编写包含该静态工厂方法的类时可以不必存在,这种灵活的静态工厂方法构成了服务提供者框架(service p... 阅读全文
摘要:
关于python文件操作总是记不住API。昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧:python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd()返回指定目录下的所有文件和目录名:os.listdir()函数用来删除一个文件:os.remove()删除多个目录:os.removedirs(r“c:\python”)检验给出的路径是否是一个文件:os.path.isfile()检验给出的路径是否是一个目录:os.path.isdir()判断是否是绝对路径:os.path.isa 阅读全文
摘要:
位置参数可以用shift命令左移。比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。非常有用的 Unix 命令:shift。我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当 Shell 程序不知道其个数时,可以把所有参数一起赋值给变量$*。若用户要求 Shell 在不知道位置变量个数的情况下,还能逐个的把参数一一处理,也就是在 $1 后为 $2,在 $2 后面为 $3 等。在 shift 命令执行前变量 $1 的值在 shift 命令执行后就不可用了。示例如下:#测试 s 阅读全文