
计算机程序设计(手机游戏开发方向),这个行业怎么样呢
工作很难找吗
首先说一说进入计算机专业的目的,我个人是因为十分喜欢IT业,很喜欢折腾电脑,所以在填报志愿是毫不犹豫的在报了的所有的学校都填写的计算机专业,梦想着进入计算机专业后能遇见很多高手,能交到几个知己,谁之进来后却大失所望。
计算机专业的学生有很多以前对计算机不怎么了解,而且还有部分人进大学前连计算机摸都没摸过,对计算机很熟悉的很少,高手更是凤毛麟角,大多数人是服从了父母之命,显而易见,目前社会最热的行业是IT业,工资最高的也是IT业,抱着这个因素,大多数考生的父母都让自己的孩子进入了计算机专业,而大多数学生也天真的认为从计算机专业毕业后就能够像电视里演的大多数白领一样每天只用坐在办公室里和同事们聊聊天,和老板吃吃饭,每天签几个字然后就有高工资等着你去拿。
进校后他们发现其实他们在专业课方面什么都听不懂,自己也一点兴趣都没有,没有兴趣那就没有学习的动力,而且这个专业是要靠悟性的,而兴趣是培养悟性的第一步,然后他们会发现越往后学专业课越难,也越听不懂,好一点的就会狠下心来,硬着头皮苦学一通,有可能也就能走出一片路来,而不好的就会就此放弃,只需要混着考试通过,混毕业,找个单位安心上班。
有些人上了几年学连自己上哪些课都不知道;拿个程序他分不清是用C语言写的还是用PASCAL写的;不小心进了DOS不知道怎么再回到WINDOWS。
但说起游戏来头头是道,好像每个都是职业玩家一样,有的每天只知道泡在网吧。
这就是中国计算机人才下一代的悲哀
再说现在计算机专业大学生的学习和生活。
大多数计算机专业的学生对本专业的发展及前景一无所知,每天都是看小说、玩游戏、看电影、打牌、喝酒、睡觉等等很有前途的事情。
偶尔看见一两个同学看看与计算机专业有关的书,跑去拿来一看,全是什么游戏攻略、黑客秘技等此类书籍。
还有的人连C语言和C++谁是谁都还没搞清楚,就拿本VC的书刻苦钻研,真不知他们看懂了没有。
好多学生都买了电脑,但用处都是游戏机+碟机+音响,每天都在用电脑玩着各种流行的游戏、看着最新的大片、听着时尚的音乐,就是不用电脑学习。
有的学生甚至问我电脑除了玩游戏还能干什么,我问他你为什么这么问,他告诉我他觉得电脑只能用来玩游戏,不知道还能不能干干别的什么。
据我了解,近几年在国内好几所高校的计算机专业的毕业生的毕业设计竟然是做网页,在大学了四年,学完了《数据结构》、《软件工程》、《C语言》等专业课后,竟然交了一个没有学过计算机的人自学一两天就能做好的东西
这就是大多数计算机专业的学生,在我在大学玩了两年之后,我突然明白该为自己的未来打算打算了,但还有许多人仍然还什么都不明白,所以就有了这篇文章。
如果你是以上我说的那种受父母之命来学计算机的学生,如果你看了《计算机应用文摘》第15期《写给想当程序员的朋友》一文后,发现自己没有当程序员的欲望,那么我这里有几条路给你选择: 1、**页制作,将来去网站工作
2、学习3D MAX等软件,去作动画
3、学习美术设计
4、网络,将来考个CCNA,去专业组网
5、在保证能顺利毕业的前提下,去疯狂玩游戏,做个职业玩家或做一个或几个网络游戏的GM。
(我身边就有这样的人) 6、以上五条都与计算机有关,要有一定的专业知识,但比起你的专业课简单多了。
如果你看到这里还不觉得有适合你干的,那这条最适合你:在你们学校去修双学位,修一个自己感兴趣的专业,计算机真的不适合你
如果以上几条有适合你的,那么你就努力去做适合你的那一片天地,去看杂志的下一篇文章,下面的文字你看了只会浪费你的时间。
如果你是计算机专业的在校大学生,而且想当软件设计师,那么请往下看: 1、大学生活丰富多彩,会令你一生都难忘,但难忘有很多种,你可以学了很多东西而难忘,也会因为什么都没学到而难忘
2、计算机专业是一个很枯燥的专业,但即来之、则安之,只要你努力学,也会发现其中的乐趣的。
3、记住:万丈高楼平地起
基础很重要,尤其是专业基础课,只有打好基础才能学得更深。
4、C语言是基础,很重要,如果你不学好C语言,那么什么高级语言你都学不好。
5、C语言与C++语言是两回事。
就象大熊猫和小熊猫一样,只是名字很像
6、请先学习专业课《数据结构》、《计算机组成原理》,不要刚开始就拿着一本VC在看,你连面向对象都搞不清楚,看VC没有任何用处。
7、对编程有一定的认识后,就可以学习C++了。
(是C++而不是VC,这两个也是两码事!C++是一门语言,而VC教程则是讲解如何使用MFC类库,学习VC应建立在充分了解C++的基础之上。
看VC的书,是学不了C++语言的。
) 8、学习编程的秘诀是:编程,编程,再编程; 9、认真学习每一门专业课,那是你的吃饭碗。
10、在学校的实验室就算你做错一万次程序都不会有人骂你,如果你在公司你试试看
所以多去实验室上机,现在错的多了,毕业后就错的少了。
11、从现在开始,在写程序时就要养成良好的习惯。
12、不要漏掉书中任何一个练习题--请全部做完并记录下解题思路。
13、你会买好多参考书,那么请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码。
14、VC、C#、.NET这些东西都会过时,不会过时的是数据结构和优秀的算法
15、记住:书到用时方恨少。
不要让这种事发生在你身上,在学校你有充足的时间和条件读书,多读书,如果有条件多读原版书,你要知道,当一个翻译者翻译一本书时,他会不知不觉把他的理念写进书中,那本书就会变得像鸡肋
16、我还是强调认真听专业课,因为有些课像《数据结构》、《编译原理》、《操作系统》等等,这种课老师讲一分钟能让你明白的内容,你自己看要看好几个月,有的甚至看了好几年都看不明白。
17、抓住在学校里的各种实践的机会,要为自己积累经验,就业时经验比什么都有用。
18、多去图书馆,每个学校的图书馆都有很多好书等你去看
19、编程不是技术活,而是体力活。
20、如果你决定了要当一个好的软件设计师,那么请你放弃游戏,除非你是那种每天只要玩游戏就能写出好程序的天才
21、你要有足够的韧性和毅力
有个高手出了一道题测试你的韧性和毅力:找个10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。
22、找到只属于你自己的学习方法
不要盲目的追随别人的方法,适合自己的才是最好的
23、请热爱软件设计这项工作
以上的话有些是我的经验,有些是我从高手那里直接COPY来的,但他们都很有用,记住他们,并遵守他们,那你们一定会成功
对于大多数初学者来说,好多人有这种问题存在:我到底先学什么
学C\\\/C++
还是学VC
还是学Borland C++ Builder呢
还是 Delphi
哪一个更好呢
学习程序设计和学习程序设计语言究竟是怎么一个关系
初学者究竟应该如何取舍呢
就这些问题,我从一个高手那里看了一下的这段话,可以帮助在这方面有问题的人:学习程序设计就好比学习射击,而程序设计语言就对应射击中的气枪、手枪、步枪等各种枪械。
学习射击必须要选择一种枪械,不可能没有枪还能学好射击的,也不可能同时学会使用所有的枪械。
但是,如果掌握一种枪械的射击,再学别的也就触类旁通了。
因为在熟悉一种枪械的同时,也学习了射击技术本身。
再学其他的,自然事半功倍。
学习程序设计也是一样,必然要从学习一门程序设计语言开始入手。
在学会系统的编程理念之后,用什么工具都一样
之所以写这篇文章呢是因为自己眼看身边那么多的同学一个个都不务正业,荒废了学业,心急如焚,自己也荒废了好几年,眼看微软的Windows从3.X到现在的2003 Server,而中国的软件业还是在原地踏步,难道我们真要每年等微软给他的操作系统换一次名字,我们给他交一次钱吗
这么大的利润为什么不留给我们自己,为什么不让别的国家给我们交钱呢
这是广大中国软件工程师的一个共同的梦,要实现这个梦的人是现在还在大学里的软件设计师们,他们是中国软件明天的希望
希望广大计算机业的大学生看到这篇文章后,睡觉的能醒来,玩游戏的能停下来,在网吧的能出来,一起拿起课本,坐在电脑前,用程序写出中国软件业明天的辉煌。
VC实现最简单的UDP通信
用Winsock实现语音全双工通信使用2009年01月05日 星期一 10:50[文章信息] 作者:张晓明 杨建华 钱名海时间:2003-06-28出处:PCVC责任编辑:方舟 [文章导读] 在Windows 95环境下,基于TCP\\\/IP协议,用Winsock完成了话音的一端—端传输摘要:在Windows 95环境下,基于TCP\\\/IP协议,用Winsock完成了话音的端到端传输。
采用双套接字技术,阐述了主要函数的使用要点,以及基于异步选择机制的应用方法。
同时,给出了相应的实例程序。
一、引言 Windows 95作为微机的操作系统,已经完全融入了网络与通信功能,不仅可以建立纯Windows 95环境下的“对等网络”,而且支持多种协议,如TCP\\\/IP、IPX\\\/SPX、NETBUI等。
在TCP\\\/IP协议组中,TPC是一种面向连接的协义,为用户提供可靠的、全双工的字节流服务,具有确认、流控制、多路复用和同步等功能,适于数据传输。
UDP协议则是无连接的,每个分组都携带完整的目的地址,各分组在系统中独立传送。
它不能保证分组的先后顺序,不进行分组出错的恢复与重传,因此不保证传输的可靠性,但是,它提供高传输效率的数据报服务,适于实时的语音、图像传输、广播消息等网络传输。
Winsock接口为进程间通信提供了一种新的手段,它不但能用于同一机器中的进程之间通信,而且支持网络通信功能。
随着Windows 95的推出。
Winsock已经被正式集成到了Windows系统中,同时包括了16位和32位的编程接口。
而Winsock的开发工具也可以在Borland C++4.0、Visual C++2.0这些C编译器中找到,主要由一个名为winsock.h的头文件和动态连接库winsock.dll或wsodk32.dll组成,这两种动态连接库分别用于Win16和Win32的应用程序。
本文针对话音的全双工传输要求,采用UDP协议实现了实时网络通信。
使用VisualC++2.0编译环境,其动态连接库名为wsock32.dll。
二、主要函数的使用要点 通过建立双套接字,可以很方便地实现全双工网络通信。
1.套接字建立函数: SOCKET socket(int family,int type,int protocol) 对于UDP协议,写为: SOCKRET s; s=socket(AF_INET,SOCK_DGRAM,0); 或s=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP) 为了建立两个套接字,必须实现地址的重复绑定,即,当一个套接字已经绑定到某本地地址后,为了让另一个套接字重复使用该地址,必须为调用bind()函数绑定第二个套接字之前,通过函数setsockopt()为该套接字设置SO_REUSEADDR套接字选项。
通过函数getsockopt()可获得套接字选项设置状态。
需要注意的是,两个套接字所对应的端口号不能相同。
此外,还涉及到套接字缓冲区的设置问题,按规定,每个区的设置范围是:不小于512个字节,大大于8k字节,根据需要,文中选用了4k字节。
2.套接字绑定函数 int bind(SOCKET s,struct sockaddr_in*name,int namelen) s是刚才创建好的套接字,name指向描述通讯对象的结构体的指针,namelen是该结构体的长度。
该结构体中的分量包括:IP地址(对应name.sin_addr.s_addr)、端口号(name.sin_port)、地址类型(name.sin_family,一般都赋成AF_INET,表示是internet地址)。
(1)IP地址的填写方法:在全双工通信中,要把用户名对应的点分表示法地址转换成32位长整数格式的IP地址,使用inet_addr()函数。
(2)端口号是用于表示同一台计算机不同的进程(应用程序),其分配方法有两种:1)进程可以让系统为套接字自动分配一端口号,只要在调用bind前将端口号指定为0即可。
由系统自动分配的端口号位于1024~5000之间,而1~1023之间的任一TCP或UDP端口都是保留的,系统不允许任一进程使用保留端口,除非其有效用户ID是零(超级用户)。
2)进程可为套接字指定一特定端口。
这对于需要给套接字分配一众所端口的服务器是很有用的。
指定范围为1024和65536之间。
可任意指定。
在本程序中,对两个套接字的端口号规定为2000和2001,前者对应发送套接字,后者对应接收套接字。
端口号要从一个16位无符号数(u_short类型数)从主机字节顺序转换成网络字节顺序,使用htons()函数。
根据以上两个函数,可以给出双套接字建立与绑定的程序片断。
\\\/\\\/设置有关的全局变量 SOCKET sr,ss; HPSTR sockBufferS,sockBufferR; HANDLE hSendData,hReceiveData; DWROD dwDataSize=1024*4; struct sockaddr_in therel.there2; #DEFINE LOCAL_HOST_ADDR 200.200.200.201 #DEFINE REMOTE_HOST-ADDR 200.200.200.202 #DEFINE LOCAL_HOST_PORT 2000 #DEFINE LOCAL_HOST_PORT 2001 \\\/\\\/套接字建立函数 BOOL make_skt(HWND hwnd) { struct sockaddr_in here,here1; ss=socket(AF_INET,SOCK_DGRAM,0); sr=socket(AF_INET,SOCK_DGRAM,0); if((ss==INVALID_SOCKET)||(sr==INVALID_SOCKET)) { MessageBox(hwnd,“套接字建立失败!”,“”,MB_OK); return(FALSE); } here.sin_family=AF_INET; here.sin_addr.s_addr=inet_addr(LOCAL_HOST_ADDR); here.sin_port=htons(LICAL_HOST_PORT); \\\/\\\/another socket herel.sin_family=AF_INET; herel.sin_addr.s_addr(LOCAL_HOST_ADDR); herel.sin_port=htons(LOCAL_HOST_PORT1); SocketBuffer();\\\/\\\/套接字缓冲区的锁定设置 setsockopt(ss,SOL_SOCKET,SO_SNDBUF,(char FAR*)sockBufferS,dwDataSize); if(bind(ss,(LPSOCKADDR)&here,sizeof(here))) { MessageBox(hwnd,“发送套接字绑定失败!”,“”,MB_OK); return(FALSE); } setsockopt(sr SQL_SOCKET,SO_RCVBUF|SO_REUSEADDR,(char FAR*) sockBufferR,dwDataSize); if(bind(sr,(LPSOCKADDR)&here1,sizeof(here1))) { MessageBox(hwnd,“接收套接字绑定失败!”,“”,MB_OK); return(FALSE); } return(TRUE); } \\\/\\\/套接字缓冲区设置 void sockBuffer(void) { hSendData=GlobalAlloc(GMEM_MOVEABLE|GMEM_SHARE,dwDataSize); if(!hSendData) { MessageBox(hwnd,“发送套接字缓冲区定位失败!”,NULL, MB_OK|MB_ICONEXCLAMATION); return; } if((sockBufferS=GlobalLock(hSendData)==NULL) { MessageBox(hwnd,“发送套接字缓冲区锁定失败!”,NULL, MB_OK|MB_ICONEXCLAMATION); GlobalFree(hRecordData[0]; return; } hReceiveData=globalAlloc(GMEM_MOVEABLE|GMEM_SHARE,dwDataSize); if(!hReceiveData) { MessageBox(hwnd,“接收套接字缓冲区定位败!”,NULL MB_OK|MB_ICONEXCLAMATION); return; } if((sockBufferT=Globallock(hReceiveData))=NULL) MessageBox(hwnd,发送套接字缓冲区锁定失败!”,NULL, MB_OK|MB_ICONEXCLAMATION); GlobalFree(hRecordData[0]); return; } { 3.数据发送与接收函数; int sendto(SOCKET s.char*buf,int len,int flags,struct sockaddr_in to,int tolen); int recvfrom(SOCKET s.char*buf,int len,int flags,struct sockaddr_in fron,int*fromlen) 其中,参数flags一般取0。
recvfrom()函数实际上是读取sendto()函数发过来的一个数据包,当读到的数据字节少于规定接收的数目时,就把数据全部接收,并返回实际接收到的字节数;当读到的数据多于规定值时,在数据报文方式下,多余的数据将被丢弃。
而在流方式下,剩余的数据由下recvfrom()读出。
为了发送和接收数据,必须建立数据发送缓冲区和数据接收缓冲区。
规定:IP层的一个数据报最大不超过64K(含数据报头)。
当缓冲区设置得过多、过大时,常因内存不够而导致套接字建立失败。
在减小缓冲区后,该错误消失。
经过实验,文中选用了4K字节。
此外,还应注意这两个函数中最后参数的写法,给sendto()的最后参数是一个整数值,而recvfrom()的则是指向一整数值的指针。
4.套接字关闭函数:closesocket(SOCKET s) 通讯结束时,应关闭指定的套接字,以释与之相关的资源。
在关闭套接字时,应先对锁定的各种缓冲区加以释放。
其程序片断为: void CloseSocket(void) { GlobalUnlock(hSendData); GlobalFree(hSenddata); GlobalUnlock(hReceiveData); GlobalFree(hReceiveDava); if(WSAAysncSelect(ss,hwnd,0,0)=SOCKET_ERROR) { MessageBos(hwnd,“发送套接字关闭失败!”,“”,MB_OK); return; } if(WSAAysncSelect(sr,hwnd,0,0)==SOCKET_ERROR) { MessageBox(hwnd,“接收套接字关闭失败!”,“”,MB_OK); return; } WSACleanup(); closesockent(ss); closesockent(sr); return; } 三、Winsock的编程特点与异步选择机制 1 阻塞及其处理方式 在网络通讯中,由于网络拥挤或一次发送的数据量过大等原因,经常会发生交换的数据在短时间内不能传送完,收发数据的函数因此不能返回,这种现象叫做阻塞。
Winsock对有可能阻塞的函数提供了两种处理方式:阻塞和非阻塞方式。
在阻塞方式下,收发数据的函数在被调用后一直要到传送完毕或者出错才能返回。
在阻塞期间,被阻的函数不会断调用系统函数GetMessage()来保持消息循环的正常进行。
对于非阻塞方式,函数被调用后立即返回,当传送完成后由Winsock给程序发一个事先约定好的消息。
在编程时,应尽量使用非阻塞方式。
因为在阻塞方式下,用户可能会长时间的等待过程中试图关闭程序,因为消息循环还在起作用,所以程序的窗口可能被关闭,这样当函数从Winsock的动态连接库中返回时,主程序已经从内存中删除,这显然是极其危险的。
2 异步选择函数WSAAsyncSelect()的使用 Winsock通过WSAAsyncSelect()自动地设置套接字处于非阻塞方式。
使用WindowsSockets实现Windows网络程序设计的关键就是它提供了对网络事件基于消息的异步存取,用于注册应用程序感兴趣的网络事件。
它请求Windows Sockets DLL在检测到套接字上发生的网络事件时,向窗口发送一个消息。
对UDP协议,这些网络事件主要为: FD_READ 期望在套接字收到数据(即读准备好)时接收通知; FD_WRITE 期望在套接字可发送数(即写准备好)时接收通知; FD_CLOSE 期望在套接字关闭时接电通知 消息变量wParam指示发生网络事件的套接字,变量1Param的低字节描述发生的网络事件,高字包含错误码。
如在窗口函数的消息循环中均加一个分支: int ok=sizeof(SOCKADDR); case wMsg; switch(1Param) { case FD_READ: \\\/\\\/套接字上读数据 if(recvfrom(sr.lpPlayData[j],dwDataSize,0,(struct sockaddr FAR*)&there1, (int FAR*)&ok)==SOCKET_ERROR0 { MessageBox)hwnd,“数据接收失败!”,“”,MB_OK); return(FALSE); } case FD_WRITE: \\\/\\\/套接字上写数据 } break; 在程序的编制中,应根据需要灵活地将WSAAsyncSelect()函灵敏放在相应的消息循环之中,其它说明可参见文献[1]。
此外,应该指出的是,以上程序片断中的消息框主要是为程序调试方便而设置的,而在正式产品中不再出现。
同时,按照程序容错误设计,应建立一个专门的容错处理函数。
程序中可能出现的各种错误都将由该函数进行处理,依据错误的危害程度不同,建立几种不同的处理措施。
这样,才能保证双方通话的顺利和可靠。
四、结论 本文是多媒体网络传输项目的重要内容之一,目前,结合硬件全双工语音卡等设备,已经成功地实现了话音的全双工的通信。
有关整个多媒体传输系统设计的内容,将有另文叙述。
三本的计算机科学与技术专业有什么出路
要学好哪些
名称由来 C++这个名字是Rick Mascitti于1983年中所建议的,并于1983年12月首次使用。
更早以前,尚在研究阶段的发展中语言曾被称为“new C”,之后是“C with Class”[3] 。
在计算机科学中,C++仍被称为C语言的上层结构。
它最后得名于C语言中的“++”操作符(其对变量的值进行递增)。
而且在共同的命名约定中,使用“+”以表示增强的程序。
Stroustrup说:“这个名字象征着源自于C语言变化的自然演进”。
注:C+是一个和C\\\/C++无关的早期编程语言。
Rick Mascitti在1992年被非正式地问起名字的由来,他表示这是在半开玩笑中说出的。
他从没想过C++会成为这门语言的正式名字。
有一个关于C++名字的笑话,当你使用后缀++时,赋值发生在加运算之后(因此,它应该是++C,而不是C++,这个笑话是说时下某些程序员还在以使用C的方式使用C++,这通常被一些权威著作认为是不正确的)。
如何成为一名网络高手
我告诉要成为网络高手,不是很快的事情,要需要时间练习,你在上网的时候就会遇见,电脑上个问题,你在上网查查有关资料,在自己试着解决~~~你要想自己的技术提高那你很要在网上,看些有关黑客的视频看他是怎么能电脑的````你在记住网上的常用的命令```对你以后都有作用```.要看黑客网站的话`你可以到baibu里搜很多的```````
编程怎么做
怎么编代码
java 我不会
1.如何学习程序设计
JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用。
有编程高手认为,JAVA也好C也好没什么分别,拿来就用。
为什么他们能达到如此境界
我想是因为编程语言之间有共通之处,领会了编程的精髓,自然能够做到一通百通。
如何学习程序设计理所当然也有许多共通的地方。
1 培养兴趣 2 慎选程序设计语言 3 要脚踏实地,快餐式的学习不可取 4 多实践,快实践5 多参考程序代码 6 加强英文阅读能力 7 万不得已才请教别人8 多读好书 9 使用合适的工具 学习JAVAJAVA学习路线 1 基础语法及JAVA原理 基础语法和JAVA原理是地基,地基不牢靠,犹如沙地上建摩天大厦,是相当危险的。
学习JAVA也是如此,必须要有扎实的基础,你才能在J2EE、J2ME领域游刃有余。
参加SCJP(SUN公司认证的JAVA程序员)考试不失为一个好方法,原因之一是为了对得起你交的1200大洋考试费,你会更努力学习,原因之二是SCJP考试能够让你把基础打得很牢靠,它要求你跟JDK一样熟悉JAVA基础知识;但是你千万不要认为考过了SCJP就有多了不起,就能够获得软件公司的青睐,就能够获取高薪,这样的想法也是很危险的。
获得真正的SCJP只能证明你的基础还过得去,但离实际开发还有很长的一段路要走。
2 OO思想的领悟 掌握了基础语法和JAVA程序运行原理后,我们就可以用JAVA语言实现面向对象的思想了。
面向对象,是一种方法学;是独立于语言之外的编程思想;是CBD基于组件开发的基础;属于强势技术之一。
当以后因工作需要转到别的面向对象语言的时候,你会感到特别的熟悉亲切,学起来像喝凉水这么简单。
使用面向对象的思想进行开发的基本过程是: ●调查收集需求。
●建立用例模型。
●从用例模型中识别分析类及类与类之间的静态动态关系,从而建立分析模型。
●细化分析模型到设计模型。
●用具体的技术去实现。
●测试、部署、总结。
3 基本API的学习 进行软件开发的时候,并不是什么功能都需要我们去实现,也就是经典名言所说的不需要重新发明轮子。
我们可以利用现成的类、组件、框架来搭建我们的应用,如SUN公司编写好了众多类实现一些底层功能,以及我们下载过来的JAR文件中包含的类,我们可以调用类中的方法来完成某些功能或继承它。
那么这些类中究竟提供了哪些方法给我们使用
方法的参数个数及类型是
类的构造器需不需要参数
总不可能SUN公司的工程师打国际长途甚至飘洋过海来告诉你他编写的类该如何使用吧。
他们只能提供文档给我们查看,JAVADOC文档(参考文献4.4)就是这样的文档,它可以说是程序员与程序员交流的文档。
基本API指的是实现了一些底层功能的类,通用性较强的API,如字符串处理\\\/输入输出等等。
我们又把它成为类库。
熟悉API的方法一是多查JAVADOC文档(参考文献4.4),二是使用JBuilder\\\/Eclipse等IDE的代码提示功能4 特定API的学习 JAVA介入的领域很广泛,不同的领域有不同的API,没有人熟悉所有的API,对一般人而言只是熟悉工作中要用到的API。
如果你做界面开发,那么你需要学习Swing\\\/AWT\\\/SWT等API;如果你进行网络游戏开发,你需要深入了解网络API\\\/多媒体API\\\/2D3D等;如果你做WEB开发,就需要熟悉Servlet等API啦。
总之,需要根据工作的需要或你的兴趣发展方向去选择学习特定的API。
5 开发工具的用法 在学习基础语法与基本的面向对象概念时,从锻炼语言熟练程度的角度考虑,我们推荐使用的工具是Editplus\\\/JCreator+JDK,这时候不要急于上手JBuilder\\\/Eclipse等集成开发环境,以免过于关注IDE的强大功能而分散对JAVA技术本身的注意力。
过了这一阶段你就可以开始熟悉IDE了。
程序员日常工作包括很多活动,编辑、编译及构建、调试、单元测试、版本控制、维持模型与代码同步、文档的更新等等,几乎每一项活动都有专门的工具,如果独立使用这些工具的话,你将会很痛苦,你需要在堆满工具的任务栏上不断的切换,效率很低下,也很容易出错。
在JBuilder、Eclipse等IDE中已经自动集成编辑器、编译器、调试器、单元测试工具JUnit、自动构建工具ANT、版本控制工具CVS、DOC文档生成与更新等等,甚至可以把UML建模工具也集成进去,又提供了丰富的向导帮助生成框架代码,让我们的开发变得更轻松。
应该说IDE发展的趋势就是集成软件开发中要用到的几乎所有工具。
从开发效率的角度考虑,使用IDE是必经之路,也是从一个学生到一个职业程序员转变的里程碑。
JAVA开发使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等几种;而Eclipse、JBuilder占有的市场份额是最大的。
JBuilder在近几年来一直是JAVA集成开发环境中的霸主,它是由备受程序员尊敬的Borland公司开发,在硝烟弥漫的JAVAIDE大战中,以其快速的版本更新击败IBM的VisualAgeforJAVA等而成就一番伟业。
IBM在VisualAgeforJAVA上已经无利可图之下,干脆将之贡献给开源社区,成为Eclipse的前身,真所谓柳暗花明又一村。
浴火重生的Eclipse以其开放式的插件扩展机制、免费开源获得广大程序员(包括几乎所有的骨灰级程序员)的青睐,极具发展潜力。
6 学习软件工程 对小型项目而言,你可能认为软件工程没太大的必要。
随着项目的复杂性越来越高,软件工程的必要性才会体现出来。
参见软件开发学习路线小节。
7 学习要点 确立的学习路线之后,我们还需要总结一下JAVA的学习要点,这些要点在前文多多少少提到过,只是笔者觉得这些地方特别要注意才对它们进行汇总,不要嫌我婆婆妈妈啊。
8 勤查API文档 当程序员编写好某些类,觉得很有成就感,想把它贡献给各位苦难的同行。
这时候你要使用javadoc工具(包含在JDK中)生成标准的JAVADOC文档,供同行使用。
J2SE\\\/J2EE\\\/J2ME的DOC文档是程序员与程序员交流的工具,几乎人手一份,除了菜鸟之外。
J2SEDOC文档官方下载地址: ,你可以到google搜索CHM版本下载。
也可以在线查看: 。
对待DOC文档要像毛主席语录,早上起床念一遍,吃饭睡觉前念一遍。
当需要某项功能的时候,你应该先查相应的DOC文档看看有没有现成的实现,有的话就不必劳神费心了直接用就可以了,找不到的时候才考虑自己实现。
使用步骤一般如下: ●找特定的包,包一般根据功能组织。
●找需要使用类,类命名规范的话我们由类的名字可猜出一二。
●选择构造器,大多数使用类的方式是创建对象。
●选择你需要的方法。
9 查书\\\/google->写代码测试->查看源代码->请教别人 当我们遇到问题的时候该如何解决
这时候不要急着问别人,太简单的问题,没经过思考的问题,别人会因此而瞧不起你。
可以先找找书,到google中搜一下看看,绝大部分问题基本就解决了。
而像某些类\\\/方法如何使用的问题,DOC文档就是答案。
对某些知识点有疑惑是,写代码测试一下,会给你留下深刻的印象。
而有的问题,你可能需要直接看API的源代码验证你的想法。
万不得已才去请教别人。
10学习开源软件的设计思想 JAVA领域有许多源代码开放的工具、组件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive论坛、PetStore宠物店等等多如牛毛。
这些可是前辈给我们留下的瑰宝呀。
入宝山而空手归,你心甘吗
对这些工具、框架进行分析,领会其中的设计思想,有朝一日说不定你也能写一个XXX框架什么的,风光一把。
分析开源软件其实是你提高技术、提高实战能力的便捷方法。
11规范的重要性 没有规矩,不成方圆。
这里的规范有两层含义。
第一层含义是技术规范,多到 下载JSRXXX规范,多读规范,这是最权威准确最新的教材。
第二层含义是编程规范,如果你使用了大量的独特算法,富有个性的变量及方法的命名方式;同时,没给程序作注释,以显示你的编程功底是多么的深厚。
这样的代码别人看起来像天书,要理解谈何容易,更不用说维护了,必然会被无情地扫入垃圾堆。
JAVA编码规范到此查看或下载 ,中文的也有,啊,还要问我在哪,请参考3.2.2节。
12 不局限于JAVA 很不幸,很幸运,要学习的东西还有很多。
不幸的是因为要学的东西太多且多变,没时间陪老婆家人或女朋友,导致身心疲惫,严重者甚至导致抑郁症。
幸运的是别人要抢你饭碗绝非易事,他们或她们需要付出很多才能达成心愿。
JAVA不要孤立地去学习,需要综合学习数据结构、OOP、软件工程、UML、网络编程、数据库技术等知识,用横向纵向的比较联想的方式去学习会更有效。
如学习JAVA集合的时候找数据结构的书看看;学JDBC的时候复习数据库技术;采取的依然是需要的时候再学的原则。
怎么学编程
说实话,你这么说让人心理不舒服,的问题都200别人不准确,照样给人家分,你30分还显得很多的似的。
学编程和打游戏可不同,得数学好,逻辑思维能力强,里面涉及到很多的运算。
学编程在中国也就属于苦力啦,整天敲代码,据我的同事说:“几乎每天都做重复的事。
” 熬个3,5年,如果运气好,可以做个中阶的程序员,这样整天在电脑前不活受罪吗,还是搞网络的舒服,平时几乎没什么事,工资并不比程序员差。
多人开发一个程序菜鸟问题
比如, 我负责画图方面, 则我可以将常用画图函数封装为一个类在敲代码前, 我得和别人约定好, 我的类可以提供什么功能, 该如何调用, 并提供相应的头文件给整个小组约定好以后, 我敲我的代码, 别人则不用管我的部分, 直接引用我提供的类即可最后, 大家都搞完了, 整合在一起编译即可用 dll 方式一样的道理, 只不过类封装变成了 dll 编译, 类引用变成了 LoadLibrary lewanzi 说的还真复杂... 我估计楼主可能只是做个课程设计之类的而已... 根本没必要用到版本库什么的... 多窗口不是一样的么... 可以把窗口创建, 操作和销毁等都抽象为一个个方法, 其他人只要调用这些方法即可, 不必理会如何实现, 而整体的协调工作则在主窗口完成至于以上种种约定, 比如窗口应该提供什么方法, 最好是专门有个人来组织协调 (这点很重要...)至于类的大小, 没啥硬性约定的吧, 把功能相近的方法封装在一起而已, 具体还得看你项目的需要, 没人去在意到底写了几行比如如果只是封装一些简单的绘图类, 你可以把画点画线画圈什么的全部都装一起, 而如果是复杂的绘图类, 你可能需要为每个子功能都封装一个类
学C++的准备工作!
软件用VC 6.0就足够了。
其他软件也可以熟悉一下。
比如:VS 2005书推荐:C++编程,你行我也行 这本书虽然不够详细。
但我就是这样学习出来的



