摘要: Tutorial 1: 公司的雇员与经理Term: superclass --> 超类 subClass --> 扩展类继承使用的前提: 满足"is-a"的关系.例如:经理也是职员,但是经理却拥有雇员没有的属性(经理有员工没有的分红部分)继承设计的原则: 将一般性的,通用的属性和方法放置到父类中,而将特殊的属性以及方法放置到子类中View Code public class Employer { public Employer() { } public Employer(String name) { this.name = name; thi... 阅读全文
posted @ 2012-10-07 11:36 papertiger 阅读(176) 评论(0) 推荐(0)
摘要: 由于时间上的紧迫性或者程序员忘记了private字段,经常忘记了加入private修饰符对类的字段进行修饰(面向对象的封装推荐我们的字段都声明为private)。这样是否会带来危险性?实际上这个是依赖与包是否已经被封上了。在Java1.2之后,package java --> 凡是以java或者javax开头的自己的类时,都会被Java的虚拟机拦截,避免恶意代码访问java.awt等包中的default字段。以下的代码展现了:我们无法使用 package java.awt, Java虚拟机的类加载器每当碰到有声明为java开头的包,都是不允许的。View Code package jav 阅读全文
posted @ 2012-09-28 23:14 papertiger 阅读(210) 评论(0) 推荐(0)
摘要: 包的作用1. 为了更好的组织代码,能够将自己的代码与代码库的代码分离。2. 在需要合作完成的工作中,可以使用分包的方式来尽量的减少类命名的冲突。Sun公司推荐程序员使用公司域名的反向字符作为公司项目的起始包名:如 baidu.com --> com.baidu引入包的概念,主要是为了解决类名冲突的问题,能够使合作的团队中,在各自的包内自由的命名而不受到其他包的名称的影响。包的概念主要是为了程序员的一个方便理解和开发,对于编译器而言,包->子包 并不表明任何的关系,他们分别是一组类的集合。标示类所处的包的语法(必须是类文件中除注释以外的第一句):package com.baidu;使 阅读全文
posted @ 2012-09-27 00:22 papertiger 阅读(1349) 评论(0) 推荐(0)
摘要: 在很多的面向对象的程序语言中,需要显式的对不再需要的对象进行析构操作,以便能够回收内存以及相关的资源(文件,句柄等),以C++作为典型的代表。Java在回收内存和资源采取了不同的策略:1. 内存:Java的GC自动的回收不会被再使用的对象所占用的空间,所以Java本身不支持析构。2. 资源:需要使用资源的方法显式的调用资源释放的方法(如文件中的close方法,画布等的dispose).Java本身提供一个类似于其他对面语言中提供的析构方法 --> finalize方法 --> 该方法保证会在Java GC在真正回收内存空间之前调用该方法。然而Java的垃圾收集器对内存进行回收的时间 阅读全文
posted @ 2012-09-26 23:53 papertiger 阅读(327) 评论(0) 推荐(0)
摘要: 参数传递方式 1. 值传递 2. 引用传递.1. 值传递(Java的方式):传递的是的值的拷贝2. 引用传递:传递的是的存储值的引用由于值传递的方式注定了Java的方法的功能:1. 在方法体内都,无法修改作为参数的基本类型值。2. 在方法体内部,能够修改对象的内容。3. 在方法体内部,无法将参数外的引用指向新的对象。View Code public class Employee{ public double salary=5000.0d; }public class EmployeeTest{ public static void changePrimitive... 阅读全文
posted @ 2012-09-25 22:05 papertiger 阅读(246) 评论(0) 推荐(0)
摘要: 对类的字段的初始化主要有以下三种方式:1. 通过声明对应字段直接给定该字段的初始值(此情况适用于所有的对象都具有一个相同的值,或者都是有相同的形式的值) View Code public class InitiateField{ private int iTest = 1; private Date currentDate = new Date(); }2. 通过构造函数来设置类的字段的值View Code public class InitiateClass{ public InitiateClass(){ ... 阅读全文
posted @ 2012-09-25 21:27 papertiger 阅读(273) 评论(0) 推荐(0)
摘要: static --> 修饰符,修饰对象表明是属于类,而非任何一个该类的实例的。换句话说:所有该类的实例所共享的。static field: 静态字段在整个class只有一份的拷贝,无论构造了多少个该类的对象(即便是没有构造任何一个该类的对象)只要类加载器对该类进行了加载,那么该静态字段就有一份拷贝。例如:对所有的该类的对象进行统一编号。就需要使得所有的变量共享一份拷贝。 静态字段中的变量使用的情况是及其小的,一般来说总是以符号常量的方式来定义字段。例如:Math中的PI, System中的out. 其中PI和out都是public修饰的,之前谈到所有的字段都需要用private来修饰。理 阅读全文
posted @ 2012-09-24 22:43 papertiger 阅读(236) 评论(0) 推荐(0)
摘要: 一般来讲把类的实例字段直接暴露出去认为是一个很危险的行为,我们常常使用private的修饰符来防止这样的危险。而对于方法则有不同的处理方式:1. 暴露给用户的接口方法:所暴露的接口方法是该类向外提供的所有的功能的集合。2. 定义为Private的私有方法: 2.1:该类的暴露给用户的,或者说外类并不关注的、然而其需要为现有的接口方法提供支持。一些底层的实现方法(外部的调用接口方法的类并不关心其实现的方式) 2.2:某些方法在使用的过程中,如果不按照某些规则使用将会造成错误。必须进行对外的隐藏。(特殊要求的方法代码,不满足该条件的,会带来问题的方法。如必须按照一定的调用顺序)3. 定义为Pr.. 阅读全文
posted @ 2012-09-24 20:59 papertiger 阅读(461) 评论(0) 推荐(0)
摘要: 今天发现有些同学对初始化还理解的不是很透彻,并且在脑中进行代码的运行的能力有所偏差,将来需要引入下面的例子来说明:Q: 以下代码打印的结果public class ContinueAndBreak{ public static void continueAndBreakTest(){ int outer = 1; int inner = 1; for(; outer < 5; outer++){ for(; inner < 5; inner++){ System.out.print(i... 阅读全文
posted @ 2012-09-24 19:25 papertiger 阅读(160) 评论(0) 推荐(0)
摘要: 破解软件两个 Navicat Premium 和 Power Designer。分两步:1. 导出数据库的DDL的sql文件 1.1 操作Navicat Premium 选择数据库 data transfer -> advanced -> unchecked Create records 导出数据库的SQL文件 Suppose we get db.sql2. 反向导入到Power Designer的ER图 2.1 Open Power Designer File -> Reverse Engineer -> Dat... 阅读全文
posted @ 2011-12-31 17:33 papertiger 阅读(2056) 评论(0) 推荐(0)