2013年1月10日
摘要: 1.虚函数类Base中加了Virtual关键字的函数就是虚拟函数(例如函数print),于是在Base的派生类Derived中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖。当基类Base的指针point指向派生类Derived的对象时,对point的print函数的调用实际上是调用了Derived的print函数而不是Base的print函数。这是面向对象中的多态性的体现基类的函数调用如果有virtual则根据多态性调用派生类的,如果没有virtual则是正常的静态函数调用,还是调用基类的。class Base{public:Base(){}public: virtual vo... 阅读全文
posted @ 2013-01-10 23:46 Yogurshine 阅读(23738) 评论(0) 推荐(1) 编辑
摘要: 单例模式属于对象创建型模式,其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点。对一些类来说,只有一个实例是很重要的,虽然系统中可以有许多打印机,但却只应该有一个打印机假脱机,只应该有一个文件系统和一个窗口管理器,一个数字滤波器只能有一个A/D转换器,一个会计系统只能专用于一个公司。怎样才能保证一个类只有一个实例并且这个实例易于被访问,一个全局变量使得一个对象可以被访问,但它不能防止你实例化多个对象,一个更好的方法是让类自身负责保存他的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法,这就是Singleton模式。模式的问题:保证一个类仅有一个实例, 阅读全文
posted @ 2013-01-10 22:27 Yogurshine 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”。它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法总而言之,它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法。调用System.out.println(obj.toString());会得到输出:xxxx@xxxxxxx的类名加地址形式cn.com.singleton.Singleton@14a55f2 阅读全文
posted @ 2013-01-10 22:00 Yogurshine 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 继承(泛化)指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间 最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖实现指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字 implements明确标识,在设计时一般没有争议性;依赖可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关 阅读全文
posted @ 2013-01-10 21:06 Yogurshine 阅读(434) 评论(0) 推荐(0) 编辑
  2013年1月8日
摘要: 线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMap Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(El... 阅读全文
posted @ 2013-01-08 18:34 Yogurshine 阅读(278) 评论(0) 推荐(0) 编辑
  2013年1月7日
摘要: 你要想给p的地址赋值0可以,但是不能,在它指的空间赋值你要想给p指向的空间赋值可以,但是,它的地址不能是0 两个例子:file1.c#include<stdio.h>void main(){ int *p = &i;p = NULL; p = 0; p = '\0'}file2.c#include<stdio.h>void main(){ int i = 23; int *p = &i; *p = NULL; *p = 0; *p = '\0';}因为大多数编译器规定,内存为0的地方不能写操作。很多时候把定义一个指针的p赋 阅读全文
posted @ 2013-01-07 22:57 Yogurshine 阅读(771) 评论(0) 推荐(0) 编辑
  2012年12月31日
摘要: (1)简单数据类型作为参数传递 “复制传值方式”,但是String类型很特殊,跟简单数据类型一样package cn.edu.lei;public class Test2 { void fun(int j) { j=20; Syste... 阅读全文
posted @ 2012-12-31 20:50 Yogurshine 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口,下面通过具体代码来看它们的区别(1)继承Thread实现多线程package cn.com.thread.demo;class MyThread1 extends Thread { private S... 阅读全文
posted @ 2012-12-31 20:39 Yogurshine 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 一.命名规范 1.包名应全部是小写字母,包名中不能出现下划线,并且第 一个字母不能是数字。 2. 类和接口的名称应是一个名词,采用大小写混和的方式,如果使用拼音则应是全拼,所有单词都应紧靠在一起,其中每个单词的首字母应大写,接口名称应以大写 I 开始。例如: class User; interface ICommonConnection; class BuMen;//此处为部门全拼 每个类定义要前必须加类的说明。3.方法名应是一个动词或动名结构,采用大小写混和的方式,其中第一个单词的首字母用小写,其后单词的首字母大写。例如: Xxxxx.getBmList(); 每个方法前必须加说明包括: 参 阅读全文
posted @ 2012-12-31 14:47 Yogurshine 阅读(202) 评论(0) 推荐(0) 编辑
  2012年12月29日
摘要: (1)Java一维数组 1) int[] a; //声明,没有初始化2) int[] a=new int[5]; //初始化为默认值,int型为03) int[] a={1,2,3,4,5}; //初始化为给定值4) int[] a=new int[]{1,2,3,4,5}; //同(3) int[] a=new int[5]{1,2,3,4,5}; //错误,如果提供了数组初始化操作,则不能定义维表达式5) int[] a; a=new int[5]; //正确,同(2)一样int[] a; a={1,2,3,4,5}; //错误,数组常量只能在初始化操作中使用,如(3)6) int a[] 阅读全文
posted @ 2012-12-29 20:34 Yogurshine 阅读(6701) 评论(1) 推荐(2) 编辑