今天有一同学问我,java怎么没有拷贝构造函数呢,java的clone就是c++的拷贝构造
函数么?
下面我分析一下这个问题:
而java中的clone是c++中的拷贝构造函数么?事实上并不是这样的,java是在
语言层面对prototype模式的支持。java事实上很少需要拷贝,除非你需要显示的得到
对象的拷贝。因为java中从来都不会有显示的对象,对象都是由引用来持有,所以无论
是你在试图传递对象或把对象作为返回值,实际传递或返回的是引用,所以生成的副本
都是引用本身,这个特点从根本上避免了对象无谓的生成副本和对拷贝构造函数的需要。
而c++是有显示对象对象存在的,我们经常一不小心把对象毫 ...
引用与指针的区别:
常常有人问引用与指针的区别,可能是指针和引用在功能上的相似,而是他们混淆这两个概念,
现在总结以下二者的区别,希望大家能彻底弄清这两个概念根本性的差别:
引用,一个变量的别名,为什么引入别名呢?原因是我们想定义一个变量,他共享另一个变量的
内存空间,使用别名无疑是一个好的选择。变量是什么?是一个内存空间的名字,如果我们给这个
内存空间在起另外一个名字,那就是能够共享这个内存了,引用(别名)的由此而来。
指针,指向另一个内存空间的变量,我们可以通过它来索引另一个内存空间的内容,本身有自己的
内存空间。
二者区别:(1)引用访问一个变量是直接访问,而指针是间接访 ...
1、你的类需要构造函数么?
对于一个复杂的类,我们要隐藏掉复杂的细节,而让用户看到一个简洁的界面,
构造函数对于隐藏内部的工作方式非常重要,因为他设定了整个程序的初始状
态,我们只把需要由用户设定的数据,作为参数,让他们来初始化为恰当的值
而其他我们都有一个默认的设置,这就隐藏掉了内部的细节。我们甚至需要思
考这个类是能产生单个实例还是多个,这就需要我们思考是否应该将构造函数
私有。
2、你的那些数据应该私有?
通常使用公有的数据成员不是个好事,因为将失去对这个数据对象的控制,使用
者可以随意修改这个值,而我们又无法在这个更改的过程中提供一个有效的合法
检查机制,同时我们也无法提供一个检测 ...
程序代码:
#include <windows.h>
#include <math.h>
#include "resource.h" // 菜单资源头文件
#define SHADOW_WIDTH1 1 //阴影宽度1
#define SHADOW_WIDTH2 2 //阴影宽度2
#define SHADOW_WIDTH3 3 //阴影宽度3
#define ID_TIMER 1 //定时器的id号
#define BORDER 8 //边界的宽度
#define BOX_WIDTH 18//box的宽度
#define BOX_HEIGH ...
Windows程序之滚动的正弦曲线(一)
#include <windows.h>
#include <math.h>
#define ID_TIMER 1
#define NUM 1000
#define STEP 10
#define TWOPI (2 * 3.14159)
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdL ...
//*************************
//获取点中y坐标最大值
//*************************
int CPolygonFillView::GetMaxY()
{
int result = points[0].y;
for(int i = 1; i < count; i++)
if(result < points[i].y)
result = points[i].y;
return result;
}
//*************************
//获取点中y坐标最小值
//*********** ...
//*******************************************************
//捕捉鼠标左键按下消息,获得两个起始控制点的坐标
//*******************************************************
void CDrawCurvesView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
oldPoint = point ...
#include <windows.h>
#include <math.h>
#include <string.h>
#include "resource.h" // 菜单资源头文件
#define SHADOW_WIDTH1 1 //阴影宽度
#define SHADOW_WIDTH2 2
#define SHADOW_WIDTH3 3
#define BORDER 8 //边界的宽度
#define BOX_WIDTH 20//box的宽度
#define BOX_HEIGHT 20 //box的高度
#define RESERV ...
- 浏览: 50656 次
- 性别:

- 来自: 长春

- 详细资料
搜索本博客
我的相册
RSS Reader1
共 6 张
共 6 张
链接
最新评论
-
使用Struts2+Hibernate+Sp ...
很好很强大
-- by andy54321 -
Java Persistence with Hi ...
昨天买的, 不错
-- by lklkdawei -
使用Struts2+Spring+Hiber ...
不过整个工程都没有一条注释啊。。。 这个比较郁闷,万一以后你写了个框架,那下面 ...
-- by yyphzc -
使用Struts2+Spring+Hiber ...
总体感觉还行,不过部分代码需要优化为好 1.DAO既然使用泛型,那就干脆点。想想 ...
-- by yeshucheng -
使用Struts2+Spring+Hiber ...
这儿有个好同志: http://www.javaeye.com/topic/12 ...
-- by drinkjava






评论排行榜