摘要: a,构造函数可以重载b,以形参的个数,类型,类型的顺序作用差分的标志。c,主数据类型的形参,可以进行转换,小数据转大数据可自动完成,而大数据转小数据,由于可能会出现精度的损失,所以必须进行强制转换。 阅读全文
posted @ 2012-03-20 11:03 Marstar 阅读(206) 评论(0) 推荐(0) 编辑
摘要: Java中,所有对象都是创建出来的,对象的自动初始化过程,是由类的构造函数完成的。当程序员没有提供一个默认的构造函数时,编译器会生成一个默认的构造函数,用于创建一个空对象。但是当程序员提供了一个或多个构造函数后,编译器就不会再生成默认的构造函数。所以,假如程序员提供了一个有参数的构造函数,而在创建该类的对象时,直接采用new obj的方式,即未提供任何参数,则编译器会提示找不到相应的构造函数。一句话总结:有,就只能用你的,没有,哥帮你生成一个空的。 1 public class Flower { 2 3 private int petalCount = 0; 4 privat... 阅读全文
posted @ 2012-03-20 10:57 Marstar 阅读(12802) 评论(0) 推荐(2) 编辑
摘要: 基本可认为与C++相同,但是有一点值得注意的地方是:赋值的时候,可能会存在“别名”的现象:package c03;class Number { int i;}public class Assignment { public static void main(String[] args) { Number n1 = new Number(); Number n2 = new Number(); n1.i = 9; n2.i = 47; System.out.println("1: n1.i: " + n1.i + ", n2.i: " + n2.i);.. 阅读全文
posted @ 2012-03-20 09:50 Marstar 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 1,用句柄操作对象,句柄是对象的标识,对象是真实存储数据的结构化的内存。2,所有对象都必须创建后才能使用。3,对象保存的位置: a,寄存器,由编译器控制,程序员无法知晓。 b,栈,比如对象的句柄就放置其中,但切记对象本身并不会放到栈里,因为所有的对象都必须“创建”。 c,堆,对象的存储位置。 d,静态区,切记对象本身并不会放置其中,存储其中的还是句柄。 (如此一来,被static修饰的对象,其句柄是存储于静态存储区的,未被修饰的,多数放置于栈中,但对象本身,由于其必须“创建”性,皆位于堆里) e,常数存储,比如代码中的常数值,它们跟代码一样,视为不会被改变,位于常数存储区里。 f... 阅读全文
posted @ 2012-03-19 17:10 Marstar 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 1,Java中,不能在任何一个类之外定义一个全局变量,只可以通过定义一个类,为其添加一个公有且静态的成员变量来实现。如此一来,其它类就可以访问和修改该类的公开静态的变量了,实现了全局变量的功能。2,Java中舍弃了Goto语句,取而代之的是try...catch...final3,Java中,指针完全由系统控制,禁止程序员使用指针。4,在Java中,数组是采用类的方式实现的,如此一来,实现了数组越界的自动检查。5,Java中,内存的申请仍然由new来实现,但已申请内存的释放,则是由系统完成了,避免了内存的泄露。6,Java中,在各个平台上,对各种常用的数据类型,总是分配固定的长度,比如int永 阅读全文
posted @ 2012-03-19 13:18 Marstar 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 1,先打印个图形: 1 /* 2 * 3 *.*. 4 *..*..*.. 5 *...*...*... 6 */ 7 /* 8 解析: 9 1,由结构就可以看出应该设置几层循环,行是一层,星花是一层,星花后面的点又是一层10 2,行的循环区间是【1,n】11 3,星花的循环区间是【1,line】,即当前是第几行,就要打印几个星花12 3,星花后点的长度是相同的,与行号相同,所以直接连续打印当前行号个点就可以了13 */14 void printStardot(int n)15 {16 ... 阅读全文
posted @ 2012-02-23 11:41 Marstar 阅读(465) 评论(0) 推荐(0) 编辑
摘要: PRIVATE: 只能由两类函数访问:1,当前类的成员函数;2,友元函数PROTECTED: 只能由三类函数访问:1,当前类的成员函数;2,子类的成员函数;3,友元函数PUBLIC: 可以由四类事物访问:1,当前类的成员函数;2,子类的成员函数;3,友元函数;4,当前类的实例(友元函数分三种:1,设为友元的普通非成员函数;2,设为友元的其它类的成员函数;3,设为友元类的所有成员函数)另外,PROTECTED和PRIVATE继承具有降低访问权限的功能,降低到更难访问的级别。比如,子类以PROTECTED方式继承基类,则基类中的PUBLIC成员在子类中就变成了PROTECTED权限,那么在访... 阅读全文
posted @ 2012-02-22 11:36 Marstar 阅读(1720) 评论(0) 推荐(0) 编辑
摘要: 1 //只适用于整数,有小数点的数字不适用,不过可以稍微处理后直接复用该函数 2 const int MaxNumberLen = 512; 3 void MultiofLargeNumber(long long number1, 4 long long number2, 5 int result[], 6 int& resultLen) 7 { 8 char chNumber1[MaxNumberLen]; 9 char chNu... 阅读全文
posted @ 2012-02-22 11:22 Marstar 阅读(960) 评论(0) 推荐(0) 编辑
摘要: 首先,字符串是一块连续的内存空间,所以此函数应该使用数组作为数据的容器。(说明此点,是因为,转换之前,不方便知道转换后的字符串的长度,想着使用链表的动态性更好方便一些,但采用链表后,最终的结果将不再是一个字符串)代码如下: 1 void long2String(long long lNumber,char* pArr) 2 { 3 if(NULL == pArr){ 4 return; 5 } 6 7 char ch = '0'; 8 int arrIndex = 0; 9 10 //取余数,再缩小十倍,以实现各位数据的提取11 ... 阅读全文
posted @ 2012-02-21 21:47 Marstar 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 链表中的对象也是按线性顺序排列的,但与数组不同,数组的线性顺序是由数组的下标,再深层次说是由数组的内存结构限定的,而链表中的顺序则是由各对象中的指针决定的。声明一个单向链表如下:class SLink_ListNode{public: SLink_ListNode(int data,SLink_ListNode* pNext = NULL); ~SLink_ListNode(); void ShowData(); int m_data; SLink_ListNode* m_next;};class SingleLink_List... 阅读全文
posted @ 2012-02-18 14:06 Marstar 阅读(2208) 评论(0) 推荐(0) 编辑