计算两个日期的相隔天数 使用库函数可以计算两个时间的毫秒差值,在转换成天数就可以了。public class CalDays { public static void main(String[] args) { // TODO Auto-generated method stub System.out.print(calDay(2008, 3, 4, 2001, 5, 23)); } public ...
综合案例:宠物商店 建立宠物商店,里面可以进行要销售宠物的上架、下架、关键字查询。宠物的信息只需要:名字、年龄、颜色。那么此时对应的关系:一个宠物商店有多种宠物。建立宠物标准:interface Pet { public String getName(); public String getColor(); public int getAge();}宠物商店只关注于宠物的标准,而...
链表 链表的基本介绍要想保存多个对象,首先的方法是对象数组,同时如果该数组可以保存任意对象,那应该是Object型的数组。Object[] data = new Object[3];。但是数组是定长的线性结构。如果数据的数量不确定,那就很难用数组来表示了。类似火车的车厢的设计模式,动态的进行车厢的挂载,那么假设每一节车厢只保留一个数据,并不受内存的限制,就可以证明解决了数据的长度问题。火车车厢不能只...
异常的捕获和处理 几乎所有的代码都可能产生异常,所以为了保证程序出现异常之后可以正常执行完毕,就需要进行异常处理。异常的影响异常是导致程序中断执行的指令流。但是程序之中如果出现异常并且没有合理处理的话,就会导致程序终止执行。范例: 没有异常产生的程序public class TestDemo { public static void main(String[] args) { System.out....
单例设计模式 所谓的单例设计模式指的是一个类只允许产生一个实例化对象。单例设计模式范例: 一个简单程序class Singleton { public void print() { System.out.println("Hello world !"); }}public class TestSingleton { public static void main...
jar命令 电脑中往往会将许多的相关联的文件放到压缩文件里面,实际上jar也是一种压缩文件,只不过里面保存的都是 *.class 文件,也就是说如果现在要实现某一个功能模块,可能有几百个类,那最终交付给用户使用的时候为了方便管理,就会将这些文件形成一个压缩包提供。在JDK之中提供有实现jar文件操作的命令,输入jar就可以了。对于此命令有几个常用参数:“c”:创建新档案;“f”:指定档案文件名;“v...
访问控制权限 已经知道的private就属于一种访问控制权限,而这种访问控制权限只是封装的一部分,在Java里面提供有4种访问控制权限:private、default、protected、public,而这四种控制权限定义如下:No.范围privatedefaultprotectedpublic1同一包中的同一类√√√√2同一包中的不同类√√√3不...
包的定义与使用 包的本质实际上就属于一个文件夹。在任何的项目里面很难避免重复的类名出现,而且如果所有的*.class文件都存放在一个目录之中,那么就有可能出现覆盖的情况。所以Java程序都应该保存在各自的目录里面,而这个目录则成为包。包的定义如果要想进行包的定义,只需要在*.java源文件的第一行编写:package 包名称即可。package cn.isohard.msg;public class He...
包装类 Object可以接收所有的应用数据类型,这其中又出现一个新问题,数据类型分为基本类型和引用类型,那基本数据类型怎么处理呢?包装类的基本原理所谓的包装类指的就是将基本数据类型封转到一个类中,如下的一个类:class MyInt { private int num; public MyInt(int num) { this.num = num; } public int intVal...
Object类 Object类是Java默认提供的一个类,可以这么说,Java里面除了Object类之外,所有的类都是存在有继承关系的。默认会继承Object父类,也就是说以下两种类定义是完全相同的。class Message {}class Message extends Object {}那么也就是证明所有的类对象都可以使用Object接收。class Message {}class Perso...
匿名内部类 在学习匿名内部类之前,先学习一个小例子。范例: 观察程序问题interface IMessage { public void print();}class MessageImpl implements IMessage { public void print() { System.out.println("Hello"); }}public class TestDemo {...
接口的定义与使用 抽线类与普通类相比最大的特点是约定了子类的实现要求,但是抽象类有一个缺点:单继承,如果要想约定子类的实现要求以及避免单继承的局限就需要使用接口。设计中可以使用抽象类和接口,接口优先选择。接口的基本概念接口就是一个抽象方法和全部常量的集合,在Java中可以使用interface关键字来进行定义。范例: 定义一个接口//因为接口和类的定义命名要求相同,所以为了区分//建议在接口前面追加一个字...
抽象类的定义与使用 在以后所有的进行的项目开发之中,不要出现一个类去继承一个已经实现好的类,而只能继承抽象类和接口。对象多态性的核心本质在于方法的重写,那么如果现在子类没有去进行指定方法的重写,这样的操作就有些不合要求的。所以如果要对子类的方法进行一些强制的要求就必须采用抽象类来解决。抽象类的基本概念抽象类只是在普通类的基础上扩充了一些抽象方法而已。所谓的额抽象方法指的是只声明而未实现(没有方法体)的方法,所有...
多态性 知道了关于继承的所有概念,但是并不意味着只要使用继承就可以实现代码的全部重用,而在继承之后又有了一个重要的概念:多态性。在Java里面对于多态的核心的表现主要有以下两点:方法的多态性:方法的重载:同一个方法名称可以根据参数的类型及个数的不同调用不同的方法体;方法的重写:同一个父类的方法,可能根据实例化的子类不同也有不同的实现。对象的多态性(前提:方法重写):【自动】对象的...
final关键字 在Java中final被称为终结器,可以使用final来定义类、方法、常量。使用final定义的类不能有子类。public final class String使用final定义的方法不允许被子类重写。使用final定义的变量就成为了常量,常量必须在声明时赋值,并且不允许修改。 如果要定义常量,往往会使用public static final来定义全局常量。而且常量的标识符必须采用大写字母的...
数组操作 现在定义一个数组(整形数组)的操作类,在这个类中有几个要求:数组的大小由类创建对象的时候动态决定;可以通过类向数组中进行数组的保存,保存的时候需要考虑到数组的大小问题;如果发现数组空间不足,则可以进行数组长度的动态扩充;可以取得数组的全部数据(增加顺序)。而后在这一基础上要求继续扩展两个派生类:可以进行数组的排序处理;可以进行数组的反转处理。定义Array类在Array类...
覆写 清楚了继承的基本概念,此时就可能出现一种情况,如果子类定义了父类相同的方法或属性,这就成为覆写。方法的覆写方法的覆写是子类定义了与父类方法名称、参数类型及个数完全相同的方法,但是被覆写的方法不能够拥有比父类更为严格的访问控制权限。范例: 简单的方法覆写class Person { public void printInfo() { System.out.println("【Perso...
继承的定义与使用 面向对象的第二大特点就是继承:继承的主要作用在于已有的基础上继续进行功能的扩充。继承问题的引出如果要想更好的解释继承的作用,按照之前学习到的概念来定义两个类:人、学生。那么现在的定义效果如下:Person类class Person { private String name; private int age; public void setName(String name) {...