Java
hi_guys
这个作者很懒,什么都没留下…
展开
-
0001_Java数据类型
Java数据类型划分:要特别指出的是:引用数据类型传递的是内存地址。原创 2016-06-07 15:14:11 · 401 阅读 · 0 评论 -
设计模式原则——单一职责原则
单一职责原则(Single Responsibility Principle)定义:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。即:不要存在多于一个导致类变更的原因。通俗的说,就是一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职转载 2016-10-04 18:15:54 · 263 阅读 · 0 评论 -
设计模式原则概述
设计模式简介 设计模式(Design pattern)是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案,代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式的原则转载 2016-10-04 15:40:38 · 199 阅读 · 0 评论 -
设计模式原则——开闭原则
开闭原则(Open Close Principle)定义:一个软件实体(如类、模块和函数)应该对扩展开放,对修改关闭。即在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。想要达到这样的效果,我们需要使用接口和抽象类。问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且转载 2016-10-24 16:56:48 · 350 阅读 · 0 评论 -
0013_抽象类与接口的应用及设计模式
为抽象类与接口实例化在Java中可以通过对象的多态性,为抽象类和接口实例化,这样再使用抽象类和接口的时候就可以调用本子类中所覆写过的方法了。之所以抽象类和接口不能直接实例化,是因为其内部包含了各个抽象方法,抽象方法本身都是未实现的方法,所以无法调用。通过对象多态性可以发现,子类发生了向上转型关系之后,所调用的全部方法都是被覆写过的方法。abstract class A{ //原创 2016-08-23 18:16:39 · 255 阅读 · 0 评论 -
0012_对象的多态性
对象的多态性主要分为以下两种类型:Ø 向上转型:子类对象→父类对象 对于向上转型,程序会自动完成,格式: 父类 父类对象 = 子类实例;Ø 向下转型:父类对象→子类对象 对于向下转型,必须明确地指明要转型的子类类型,格式: 子类 子类对象 = (子类)父类实例;class A{ // 定义类A public voi原创 2016-06-08 10:15:41 · 253 阅读 · 0 评论 -
0011_接口
接口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成。如果一个类中完全是由全局常量(static final声明)和抽象方法组成,就可以将其定义成一个接口。 接口的定义格式:interface 接口名称{ 全局常量; 抽象方法;}在实际开发中,也经常省略全局常量前的staticfinal和抽象方法前的abs原创 2016-06-08 10:12:28 · 240 阅读 · 0 评论 -
0010_抽象类
抽象类的概念:包含一个抽象方法的类就称为抽象类。抽象方法:只声明而未实现的方法称为抽象方法,抽象方法必须使用abstract关键字声明。 抽象类的定义及使用规则:Ø 包含一个抽象方法的类必须是抽象类;Ø 抽象类和抽象方法都要使用abstract关键字声明;Ø 抽象方法只需声明而不需要实现;Ø 抽象类必须被子继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方原创 2016-06-08 10:04:16 · 244 阅读 · 0 评论 -
0009_内部类
class Outer{ // 定义外部类 private String info = "hello world" ; // 定义外部类的私有属性 class Inner{ // 定义内部类 public void print(){ // 定义内部类的方法 System.out.println(info) ; // 直接访问外部类的私有属性 } }; public原创 2016-06-08 09:02:42 · 219 阅读 · 0 评论 -
0008_构造方法私有化与单例设计模式
class Singleton{ private Singleton(){ // 将构造方法进行了封装,私有化 } public void print(){ System.out.println("Hello World!!!") ; }};public class SingletonDemo02{ public static void main(String args[])原创 2016-06-08 08:56:38 · 325 阅读 · 0 评论 -
0007_this、static、final、super
this关键字1. 表示本类中的属性(和方法) 这一点在类的构造方法中就常用2. 使用this调用构造方法 如果在一个类中有多个构造方法,则可以使用this关键字互相调用。class Person{ // 定义Person类 private String name ; // 姓名 private int age ; // 年龄 public Person(){原创 2016-06-07 20:33:00 · 238 阅读 · 0 评论 -
0006_String及其比较
关于String的两种比较方式:a) 使用“==”,比较的是地址值b) 使用“equals”,比较的是内容 实例化String对象有两种方式:A. 直接赋值 String name = “Jack”;B. 通过关键字new String name =new String(“Jack”); 两种实例化方式的区别:1. 直接赋值public原创 2016-06-07 16:08:03 · 310 阅读 · 0 评论 -
0005_类与对象
类属于引用数据类型,从数组中可以知道,引用数据类型必然存在栈内存-堆内存的引用关系。 实际上,在类与对象的使用上依然存在着这样的关系。class Person{ String name ; // 声明姓名属性 int age ; // 声明年龄属性 public void tell(){ // 取得信息 System.out.println("姓名:" + name + ",年原创 2016-06-07 15:41:01 · 244 阅读 · 0 评论 -
0004_函数重载
方法(函数)的重载就是方法的名称相同,但参数的类型和参数的个数不同(返回值类型可以不同也可以相同),通过传递参数的个数及类型的不同来完成不同功能的方法调用。要特别注意的是方法的重载一定是根据参数的类型或个数来判断的。如下:public class MethoDemo04{ // 定义方法,完成两个数字的相加操作,方法返回一个int型数据 public static int add(原创 2016-06-07 15:38:03 · 265 阅读 · 0 评论 -
0003_数组
使用java的数组,必须经过两个步骤:(1) 声明数组(2) 分配内存给该数组声明形式一: 声明一维数组:数据类型 数组名[] = null; 分配内存给数组:数组名 =new 数据类型[长度];声明形式二: 声明一维数组:数据类型[]数组名 = null; 当然,我们也可以在声原创 2016-06-07 15:19:51 · 212 阅读 · 0 评论 -
0002_break和continue
break用来中断循环,当程序执行到break语句时,即会跳出循环体,继续执行循环外的下一条语句。要注意到,break只能跳出当前层的循环。即在多层嵌套循环中,如果break出现在内层循环中,则执行到break时,只会跳出内层循环,继续执行外层循环。我们可以在内层循环中修改外层循环的条件,以此来达到跳出多层循环的目的。 continue用来终止此次循环(即continue后面的语句不在执行原创 2016-06-07 15:17:02 · 359 阅读 · 0 评论 -
设计模式原则——里氏替换原则
里氏替换原则(Liskov Substitution Principle)定义1:如果对每一个类型为 T1 的对象 O1,都有类型为 T2 的对象O2,使得以 T1 定义的所有程序 P 在所有的对象 O1 都代换成 O2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。定义2:所有引用基类的地方必须能透明地使用其子类的对象。问题由来:有一功能P1,由类转载 2017-08-13 15:20:19 · 206 阅读 · 1 评论