SUN JAVA 培训专用教材05
- 格式:doc
- 大小:165.00 KB
- 文档页数:26
第5章步入江湖——做事的学问闯过了简历、笔试、面试、试用期等重重关卡,展现在各位读者面前的就是波澜壮阔的IT江湖了。
进入职场,面对的将是另一番天地。
如何做人、如何做事,都是一门不小的学问。
在IT职场做事,除了技术水平的高低需要重视之外,很多其他学问也是必不可少的。
本章将向读者介绍一些在职场做事的学问,希望对各位职场新手有所帮助。
Java5.1 身为菜鸟步入职场,第一个头衔只能是职场菜鸟,做菜鸟的时间长短因人而异,但是每个人都要经历这个阶段。
身为一个菜鸟,面对工作,应该是什么样的心态和做法呢?应该争取什么,避免什么?本节将要探讨的,就是如何做一名合格的菜鸟。
5.1.1 打碎牙齿往肚里咽或许一开始就谈打碎牙齿这么血腥的问题不好,但是职场不是过家家,而是擂台。
在弱肉强食的竞争之下,IT菜鸟必须学会这一招。
否则如果打碎牙齿吐出来的话,那么吐出来的将不仅是牙齿,还有自己失败认输的白旗。
当然了,这里的打碎牙齿并不是真的每天去公司挨揍。
打碎牙齿往肚里咽是指菜鸟在初期面对工作的一种态度,核心思想就是不示弱、不露怯、不言苦、不说累。
这么说或许会有些过于夸大其词,不过字字真言。
有蔡佳娃这种想法的新手应该会很多,认为公司分配给自己的任务离自己想象的一杯咖啡作伴、一阵思考、一份成功实现的喜悦等场景相差太远。
其实,这也不能怨上级,一个刚到公司的人,怎么能事事都如愿呢?相比来说,蔡佳娃这样的工作算是好的了,有些新人到了公司,上级在一开始甚至都不会分配编程的任务,有可能去做测试或者做售前售后等。
在这里就要发扬菜鸟的精神了,不论上级分配的任务你是否喜欢,是否觉得有意义,都不能有怨言,都要圆满高效地完成。
对于菜鸟来说,完成工作任务是底线,也是菜鸟走向成熟的必经之路。
套用文艺界的一句话就是:“没有小工作,只有真菜鸟”。
96以上这种情况是分配的工作不喜欢但是也必须做,而且这些工作是可以胜任的。
而下面的这种情况就不一样了,菜鸟在进入职场的时候,可能还会接到稍稍超出自己能力范围的工作任务,这时候适当发扬“不懂装懂”的精神就显得很有必要了。
这是偶一个【2 】同伙转过来的他们公司的入门级SUN培训材料, 愿望对大家有所关心,呵呵第一部分 SUN基本常识 4一.SUN成长简史 4(一)硬件体系 4(二)软件体系 4二. PROM状况敕令与参数 5(一)指令集 5(二)情形变量 5三.体系安装 5四.UNIX 敕令 7(一)根本敕令 71.ls 显示文件名,等同于dos下dir敕令 72.cd 目次转换,等同于dos下cd敕令 73.pwd 显示当前路径 74.cat 显示文件内容,等同于dos下type敕令 75.more 以分页方法查看文件内容. 76.rm 删除文件 77.mkdir 创建目次 88.rmdir 删除目次 89.cp 文档复制 810.mv 文件移动 811.du 查看目次所占磁碟容量 812.find 文件查找 913.man 随机文档 914.vi 编辑器 9(二)加强敕令 101.ln 文档贯穿连接 102.grep 搜刮字符串 103.fgrep 搜刮字符串 104.file 显示文件类型 105.diff 比较文档或目次之不同内容 116.cmp 比较文档雷同部分 117.ftp 长途文件传输 118.telnet 长途终端拜访 129.IO 从新导向 12第二部分 SUN体系治理 12五.用户治理 12(一)用户根本常识 121.文件信息 122.缺省权限 133.体系安全文件 13(二)相干敕令 141.chmod 转变文档或目次之属性 142.chown 转变文档或目次之失去权 143.chgrp 转变文档或目次之群组失去权 144.touch 转变文档或目次之最後修正时光 145.who 查看体系注册用户 146.id 查看当前用户用户号和组号 147.passwd 修正用户口令 148.su 转换用户 15(三)SHELL特色 151. s olaris三类shell 152. B shell 153. C shell 154. dtterm 16(四)创建,删除用户帐户 16六.文件体系治理 16(一)硬盘和文件资本 161. 逻辑硬盘装备定名的商定 172.dmesg敕令 173.showrev 敕令 17(二)硬盘分区 171.format适用程序 182.newfs 创建文件体系 183.fsck 修复文件体系 18(三)挂接文件资本 181.mount 文件体系挂接 182.df 显示文件体系所占用的硬盘空间 183.umount 摘下文件资本 19(四)主动挂接文件资本 19(五)NFS资本 201.share,shareall 共享文件资本 202.dfshares 显示长途机共享资本 203.mount 挂接长途文件资本 204./etc/dfs/dfstab 主动挂接 20(六)卷治理 20(七)主动安装文件体系 20七.过程治理 201.ps 显示过程号 202.kill 消除过程 203.nohup非挂起运行 21八.软件包治理 211.pkginfo 显示软件包信息 212.pkgadd 增长软件包 213.pkgchk 校验软件包的安装 214.pkgrm 删除软件包 215.spooling 软件包转储 22九. 数据备份和传输对象 22(一)数据装备名 22(二)数据备份敕令 231.ufsdump敕令 232.ufsrestore敕令 233.tar敕令 244.cpio敕令 24press,uncompress,zcat 敕令 256.mt 敕令 257.dd 敕令 258.异地运用磁带机(必须为可托任用户,参见11.3) 25十.转变运行等级 25(一)体系引诱 25(二)体系操作等级 261. 运行等级解释 262. 显示运行等级 263.封闭体系的原因 264.封闭体系(shutting down) 26(三)例子: 271.增长一个磁带机并完成从新设置装备摆设引诱: 272.从挂起的工作站上恢复 273.从稍微问题中恢复 274.从主要问题中恢复 27第三部分收集设置装备摆设 28十一.收集运用设置装备摆设 28(一)收集根本设置装备摆设文件 28(二)长途拜访敕令 28(三)拜访辨别相干文件 28(四)收集监控 291.rusers 标识收集上注册用户 292.rup 标识收集上主机 293.ping 检测主机衔接状况 29stat 显示与收集有关的各类数据构造 295.ifconfig 显示收集接口 296.route 路由设置 297.arp 反应解析 298.nfsstat 监控NFS 29第四部分体系运用 30十二.图形窗口设置装备摆设 301.双屏设置装备摆设 302.显卡分辩率调剂 303.XWININFO 分辩率确认 304.XHOST XSERVER拜访掌握 305.OPENWIN 初始化 306.CDE桌面初始化 307.终端窗口掌握字符 31十三.系一切计 311.PRTCONF 体系信息 312./USR/PLATFORM/SUN4U/SBIN/PRTDIAG -V 313.SYSDEF 体系信息 314.EEPROM 显示机械IDPROM变量 315.VMSTAT 监督CPU和内存 316.MPSTAT 监督多个CPU状况 317.IOSTAT 监督磁盘状况 318.UPTIME 显示体系运行时光以及在曩昔的15分钟内体系的负载情形 32第一部分 Sun基本常识一.Sun成长简史(一)硬件体系年限产品特点81--89 Sun1/2/3 CISC Motrala 680x0系列89--94 Sun4/60 sparc1 65 sparc1+70 sparc2Server :, Sun/290/670/690 Risc sparc93--96 Sparc10/20Server: 1000/2000 SuperSparc96--97 Ultra1(140/170/170E/200E)Ultra2 Server :, E150,E3000 UltraSparc,Sbus总线,UltraSCSI接口UPA接口98--99 Ultra5 Ultra10 UltraSparc,PCI总线,IDE接口Ultra30 Ultra60Server :, E250,E450 UltraSparc,PCI总线,UltraSCSI接口UPA接口(二)软件体系版本特点Solaris 1.x SunOS 4.1.3(BSD)+OpenWindow 3.0Solaris 2.x System V 32bit2.5.1 SunOS 5.5.1 +OpenWindows CDE1.0.22.6 SunOS5.6+CDE1.2.1+Motif1.2.6Solaris 2.7(7) 64 bit SunOS7+CDE1.3+Motif2.1.0 logging UFS二. PROM状况敕令与参数(一)指令集格局: OK> 指令敕令解释1.banner 显示当前机械设置装备摆设状况,CPU,内存,hostid,EtherNet2.probe-scsi 显示内部SCSI通道所挂接装备3.probe-scsi-all 显示所有SCSI通道及所挂接装备4.probe-ide 显示所有IDE通道及所挂接装备(针对U10,U5)5.devalias 显示装备别名,如 cdrom,disk,disk0,disk1等6.printenv 无参数,显示情形变量或参数为情形变量名如: printenv auto-boot?7.setenv 设置情形变量,如: setenv auto-boot? false8.set-default 恢复情形变量预定值如:set-default auto-boot?9.set-defaults 恢复所有情形变量预定值10.boot device option 启动主机装备别名: cdrom 或disk装备名: /pci@1f,4000/scsi@3,1/disk@6,0:foption -r 装备设置装备摆设 -s 单用户11.eject cdrom|floppy 弹出cdrom或floppy12.reset 复位13.test net14.watch-net-all15.show-devs(二)情形变量变量名解释1.auto-boot? 预定值=true 主动启动 =false 进入PROM状况2.diag-switch? 预定值=false启动状况,启动装备名为boot-device =true 诊断状况,启动装备名为diag-device3.boot-device 预定值=disk4.diag-device 预定值=net5.tpe-link-test? 收集检测 =true 检测收集(一部分机械具有此变量)三.体系安装(一) 等待显示器点亮刹时,按STOP+A键(先按住STOP,再按A)等待消失OK状况OK> probe-scsi <-检测SCSI装备,至少应有0号(HD),1号(HD),6号(光驱)装备OK>boot cdrom(二)体系启动后,等待安装界面I . system identification,下述步骤为简单解释1. 安装界面说话选择,默以为English2. 输入主机名(hostname),可输入原主机名3. 选择是否有收集,选择Yes4. 输入IP地址,可输入原IP地址5. 名办事(name service),选择No6. 子网(system part of subnet),选择No7. 指准时区 Asian,Eastern – People’s Republic of china8. Date and TimeII. 体系安装1. Allocate Client Service,默以为无,continue2. Select Languages , continue3. Select Software , 选择 Entire Distribition plus OEM support,continue4. Select Disk , available disk select diskC0t0d0C0t1d0 c0t1d0Select Root location -> c0t1d05. preserve data ,默以为不保留,continue6. Automatic layout File system 选择Manual layout7. Customize0 / 9001 swap 3002 overlap 4200(硬盘预定值)3 /space 3000*32bits SPARCs root partition must smaller than 2GB*and old PROMS(revision 2.5 or less) root partition must smaller than 1GB 8.Mount remote file system ,默以为无,continue9.Begin install9. Auto rebootUnix文件体系初步介绍:unix根本是由一个焦点(kernel)再加上各个大小功效不同的程序和文档构成,UNIX的全部文件体系是长在”root”之下,”root”是一般的说法,就路径的表示法,是“/”(这跟DOS)不同的是,DOS的根路径是用”\”表示,下面是比较主要的目次/bin binary的缩写,为与旧体系兼容,bin为指向/usr/bin的衔接/dev device的缩写,包含了UNIX的装备文件/etc et cetera的缩写,包含了体系治理所许的文档和目次,/home 一般计划用于运用者的家目次/lib library的缩写,和/bin一样,已经挪至/usr/lib,此处是一个link/losts+found 这个目次为空,但当体系故障,如停电造成非正常关机,当从新启念头器时,有些无法归属的文档放于此处/tmp temporary的缩写,用于放置暂时文件,体系开机主动消除/var various 缩写/var/adm 体系信息及统计数据/var/spool 文件打印及mail/var/tmp 与/tmp类似,公用暂时区,但不主动消除,需体系治理员保护/usr user的缩写/usr/bin 存放大多半指令/usr/include 头文件/usr/lib 库函数/usr/ucb BSD系列的指令usr/man UNIX敕令手册四.Unix 敕令(一)根本敕令1.ls 显示文件名,等同于dos下dir敕令敕令格局:ls [option] fileoption:-l 显示具体列表域1 :文件类型和文件权限域2 :文件衔接数域3 :文件所有者名字域4 :文件用户组名字域5 :文件长度域6-8 :比来修正日期域9 :文件名-a 显示所有文件,包含隐蔽文件(以. 开端的文件名) -R 显示文件及所有子目次-F 显示文件(后跟*)和目次(后跟/)-d 与l选项合用,显示目次名而非其内容2.cd 目次转换,等同于dos下cd敕令留意目次分隔符为“/”,与dos相反敕令格局:cd dirname3.pwd 显示当前路径4.cat 显示文件内容,等同于dos下type敕令敕令格局:cat filename5.more 以分页方法查看文件内容.敕令格局:more filename6.rm 删除文件敕令格局: rm [-r] filename (filename 可为档名,或档名缩写符号.) 例子:rm file1 删除档名为 file1 之文档.rm file? 删除档名中有五个字符,前四个字符为file 之所有文档.rm f* 删除档名中,以 f 为字首的所有文档.rm -r dir1 删除目次 dir1,及其下所有文档及子目次.7.mkdir 创建目次敕令格局: mkdir [-p] directory-name例子:mkdir dir1 树立一新目次 dir1.mkdir -p dir/subdir 直接创建多级目次8.rmdir 删除目次目次必须起首为空敕令格局: rmdir directory9.cp 文档复制敕令格局: cp [-r] source destination例子:cp file1 file2 将文档 file1 复制成 file2cp file1 dir1 将文档 file1 复制到目次 dir1 下,文件名仍为 file1. cp /tmp/file1 . 将目次 /tmp 下的文档 file1复制到现行目次下,档名仍为 file1.cp /tmp/file1 file2 将目次 /tmp 下的文档 file1现行目次下,档名为file2cp -r dir1 dir2 (recursive copy) 复制全部目次.若目次 dir2 消失,则将目次dir1,及其所有文档和子目次,复制到目次 dir2 下,新目次名称为dir1.若目次dir2不消失,则将dir1,及其所有文档和子目次,复制为目次 dir2.10.mv 文件移动敕令格局: mv source destination例子:mv file1 file2 将文档 file1,更改档名为 file2.mv file1 dir1 将文档 file1,移到目次 dir1 下,档名仍为 file1.mv dir1 dir2 若目次 dir2 消失,则将目次 dir1,及其所有档案和子目次,移到目次 dir2 下,新目次名称为 dir1.若目次 dir2 不消失,则将dir1,及其所有文档和子目次,更改为目次 dir2.11.du 查看目次所占磁碟容量敕令格局: du [-sk] directory例子 :du dir1 显示目次 dir1 的总容量及其次目次的容量du -sk dir1 显示目次 dir1 的总容量,以k bytes为计量12.find 文件查找敕令格局: find dir -name filename command例子:find . -name hello -print 查找今朝目次及所有的子目次内叫hello的文档.find . -ctime +7 -print 找出七天内未被更动的文档find . -size +2000m -print 找出大小超过2000 bytes的文档find /tmp -user b1234567 -print 在/tmp部属於b1234567的文档find . -name '*.c' -exec rm {} 删除所有的.c档find . -name test\* -print 显示当前目次及其子目次文件名前4位为test的文件名13.man 随机文档例子:man ls | col –b >ls.txt 生成文本文档catman –w –M /usr/man 生成索引症结字man –k keyword 症结字查找man –s number word 不同体系类别example: man –s 3s printf14.vi 编辑器敕令状况:j,k,h,l:高低阁下0:行首$: 行尾i,I :插入敕令,i 在当前光标处插入 I 行首插入a,A:追加敕令,a 在当前光标后追加,A 在行末追加o,O:打开敕令,o 在当前行下打开一行,O在当前行上插入一行r,R :调换敕令,r 调换当前光标处字符,R从光标处开端调换数字s: 调换指定命量字符x: 删除光标处字符dd: 删除当前行d0: 删除光标前半行d$: 删除光标后半行ctrl+f :后翻页ctrl+b:前翻页G : 文件尾数字G: 数字所指定行/string 查找字符串n 持续查找N 反向持续查找% 查找对应括号u 撤消前次操作ex敕令状况:set number 显示行号:set smd 显示显示状况:0 文件首:1,5 copy 7 块拷贝:1,5 del 块删除:1,5 move 7 块移动:1,$s/string1/string2/g 全文件查找string1并调换为string2:wq! 存盘退出(二)加强敕令1.ln 文档贯穿连接敕令格局:ln [-s] oldname newname统一文档,可失去一个以上之名称,可将文档做数个贯穿连接.一个符号链是指向体系另一个文件的特别文件,当拜访这种文件时,它里面存放着一个路径名,该路径名用来引诱用户到卡符号链所指的文件或目次例子:ln -s file1 file2 将名称 file2,贯穿连接至文档 file1.2.grep 搜刮字符串敕令格局:grep string filename查找字串的办法许多,比如说我想找所有以M开首的行.此时必须引进pattern的不雅念.以下是一些简单的□例,以及解释:^M 以M开首的行,^表示开端的意思M$ 以M结尾的行,$表示停止的意思^[0-9] 以数字开端的行,[]内可列举字母^[124ab] 以1,2,4,a,或b开首的行^b.503 句点表示任一字母* 星号表示0个以上的字母(可以没有)+ 加号表示1个以上的字母\. 斜线可以去失落特别意义<eg> cat passwd | grep ^b 列出大学部有申请帐号者名单cat passwd | grep ^s 列出交流学生申请帐号者名单cat passwd | grep '^b.503' 列出电机系各年级...grep '^\.' myfile.txt 列出所有以句点开首的行3.fgrep 搜刮字符串敕令格局:fgrep string file4.file 显示文件类型敕令格局:file fileall文件类型为shell script,ELF 32bit,ASCII text,data or tar file 5.diff 比较文档或目次之不同内容敕令格局:diff [-r] name1 name2 ( name1 name2 可同时为档名,或目次名称.)例子 :%diff file1 file2比较文档 file1 与 file2 内,各行之不同处.%diff -r dir1 dir2比较目次 dir1 与 dir2 内,各文档之不同处.6.cmp 比较文档雷同部分敕令格局:cmp file1 file27.ftp 长途文件传输敕令格局: ftp [hostname|IP address]在进入 ftp 之後,假如与 remote host 衔接上了,它将会讯问你 username 与暗码,假如输入对了就可以开端进行文档传输.留意:如用户无暗码,无法注册(1) ftp 敕令ascii 将传输模式设为 ascii 模式.平日用於传送文字档.binary 将传输模式设为 binary 模式,平日用於传送履行档,紧缩档与影像cd remote-directory 将长途主机上的工作目次转变.lcd [ directory ] 更改本地主机的工作目次.ls 列出长途主机上的文档.get remote [ local-file ] 取得远方的文档.mget remote-files 可运用通用字元一次取得多个文档.put local[ remote-file] 将本地主机的文档送到长途主机.mput local-files 可运用通用字元一次将多个文档放到长途主机上.help [ command ] 线上关心指令.mkdir directory-name 在长途主机创建一个目次.prompt 更改攀谈模式,若为 on 则在 mput 与 mget 时每作一个文档之传输时均会讯问. quit/bye 分开ftp .(2) 后台履行ftp1.起首,将过程所用到的指令依次序放入文档中,如下:%cat ftp_command!mkdir testlcd testcd testpromptbinarymget *.*bye2.其次,建一个.netrc档,属性为400,让ftp 主动到此读取Username与Password,方可顺遂login 到的主机,如下:%cat .netrcmachine remote login anonymous password guest 3.最後再履行下面指令即可.%nohup ftp remote < ftp_command > message &8.telnet 长途终端拜访敕令格局:telnet [hostname|IP address]*注:如运用root用户登录,其权限请参见11.3.49.IO 从新导向UNIX所有的程式履行时,均须要材料的输入以及输出材料.一般而言,材料是从键盘输入,并将材料输出到萤幕上,这就叫做标准输入及标准输出,而我们可以更改标准出输出入.A. 更改标准输入——在敕令後方加"< <filename>" ,即可从<filename>这个文档输入材料.B. 更改标准输出——在敕令後方加"> <filename>" ,即可将萤幕输出的资料导向到<filename>这个文档上.C. 更改标准输出——在敕令後方加">> <filename>",功效与B.类似,只不过这会将材料加在文档後方.D. 管道——在两个敕令中央加上'|',即可将前方指令的输出当成後方指令的输入.例:cd /tmpls -l > /tmp/ls.outcat /tmp/ls.outmore /tmp/ls.outrm /tmp/ls.outls | morels | wc -l (word count, count line number,算出文档数量) 第二部分 Sun体系治理五.用户治理(一)用户根本常识1.文件信息ls -ldrwxrwxrwx filename(1)拜访权限mode : rwx rwx rwx r:read w:write x:executeuser group other缩写 : (u) (g) (o)(2)文件类型- : 通俗文件b : 块特别文件,如硬盘和CDROM装备c : 字符文件装备或称“raw”装备文件l : 符号衔接p : 管道或流,用于过程通信d : 目次2.缺省权限创建文件和目次时,体系主动设置必定的权限.缺省权限由用户mask码掌握$umask &显示用户umask码umask 设置文件目次022 新文件属主有读权和修正权用户组和其他用户有读权和修正权用户组和其他用户只有读权可用umask maskvalue 转变缺省权限3.体系安全文件/etc/passwd 用户注册表/etc/shadow 加密口令/etc/group 用户组/etc/default/login 拜访掌握解释:passwd文件是为体系中的用户授予和认证拜访权限的第一个文件,其项目运用’:’朋分. login_name:passwd_field:UID:GID:comment:home_directory:default_shelllogin_name 用户独一登录名 comment 注释(finger运用)passwd_field 加密口令安全标记 home_directory 用户注册家目次UID 用户号 default_shell 敕令解释器GID 用户缺省独一组号默认:sh,csh,kshshadow 文件治理用户加密口令,该文件只对超级用户有读权限login_name:encrypted_pass:last_change:min:max:warn:inactive:expire:reservedlogin_name 用户名(同passwd) max 口令有用最大天数encrypted_pass 13字符长加密口令 warn 口令到期前若干天警告last_change 前次更改日期(from1970.1.1) inactive 被制止登录前,帐号不活泼天数min 最小距离天数 expire 用户制止登录绝对日期(平日空白)group文件用于将盘算机体系的用户分组。
SunJava认证考试教材教辅Sun Java认证考试教材教辅 01.Java TM Programming Language SL-275 02.Java Programming Language Workshop SL-285 ⼀、清华⼤学出版社 01.《java认证考试指南》(第2版),任学群,2005.08.01 02.《SCJP培训与认证指导》(世界著名IT⼚商认证系列培训教材),张海涛,2005.04.01 03.《Java程序设计教程》(第2版),壅俊海编著,2007.08 04.《Sun认证Java 2程序员考试辅导》(上册:SL-275),连凤春、黄艳虹编著,2003.10 05.《Sun认证Java 2程序员考试辅导》(下册:SL-275/375),连凤春编著,2003.10 06.《Java实⽤案例教程》,张利国,2003.10 09.《Sun认证 Java 程序员考试辅导》(上册--SL1352),连凤春、黄艳虹等编著,2003.20.01 10.《(KH)Sun认证 Java程序员考试辅导》(下册--SL1352),连凤春等编著,2003.20.01 11.《Java程序设计》(修订本)(北京⼤学信息技术系列教材),唐⼤仕,2007.05 ⼆、电⼦科技⼤学出版社 01.《Java国际认证(SCJP)典型试题1000:例》(中⽂版),施铮,2005.08.01 三、北京希望电⼦出版社 01.《Java国际认证(SCJP)典型试题1000例》(中⽂版),施铮,2005.08.01 02.《Java国际认证(SCJP)典型试题1000例》,施铮,2004.12.01 03.《SUN国际认证SCWCD试题精解》,施铮编著,2007.09 04.《SUN国际认证SCWCD应试指南》,施铮编著,2007.09 四、⼈民邮电出版社 01.《SCJP学习指南——Sun Certified Programmer for Java 5(Exam 310-055)》,Kathy Sierra Bert 著、陈宗斌、沈⾦河译,2006.10.01 02.《J2EE学习指南-Sun Certified Enterprise Architect for J2EE(Exam 310-051)(英⽂版)》(附CD-ROM光盘⼀张),(美)艾伦、(美)班泊拉著,2003.08 03《Java 2学习指南》(中⽂版·含盘),(美)Kathy Sierra,Bert Bates 著、袁鹏飞、许伟民译,2004.01 04.《Java 2学习指南》(英⽂版)(附CD-ROM光盘⼀张),(美)Kathy Sierra、Bert Bates 著,2003.08 05.《Sun认证考试指南—Solaris 9.0 系统管理和⽹络管理》(英⽂版),(美)Paul.A.Watters,2003.07 06.《Sun 认证 Java 2 程序员学习指南》(第⼆版)(含盘),(美)Syngress Media 公司编,2001.09 五、电⼦⼯业出版社 01.《Solaris 10 实⽤⼤全》,(美)温特斯(Watters,P.A)著、吴⽟亮译,2007.02.01 02.《SUN Solaris 9/10 系统管理员认证指南》,黄⾬等编著,2007.10.01 03.《SCWCD认证专家应考指南》(含光盘),何致亿编著,2004.04 04.《Java 2 宝典》,(美)华尔斯著、卢庆龄译,2001.07 05.《JAVA⾯向对象编程》,孙卫琴编著,2006.07 06.《Java⽹络编程精解》,孙卫琴编著,2007.03 07.《Java 2 考试指南》(英⽂原版),(美)斯坦尼克著,2002.04 六、机械⼯业出版社 01.《Solaris 9 技术⼤全》,(美)Paul Watters,2005.02.23 02.《Solaris 内核结构》(第2版),(美)麦克道格、(美)莫若著、Sun中国⼯程研究员译,2007.06 03.《Solaris性能与⼯具》,(美)麦克道格(McDougall,R.、(美)莫若(Mauro,J.)、(美)格雷格(Greg),2007.06 04.《Java 2 全⽅位学习(J2SE5.0增修版)》(附CD-ROM光盘⼀张),朱仲杰著,2006.02 05.《Java 2认证考试指南》(原书第3版)(附光盘),(美)斯坦尼克著、⽥丽韫等译,2002.03 七、北京⼤学出版社 01.《Java程序设计⼤全——Java经典教材译丛》,(美)法雷尔(Farrell.J.)著、武嘉译,2003.12.01 ⼋、中国电⼒出版社 01.《Head First Java》(中⽂版),(美)塞若(Sierra,K.)、(美)贝茨(Bates,B.) 著、O′eilly Taiwan公司译、张然等改编,2007.02.01 九、科学出版社 01.《Java 5 国际认证SCJP试题精解》,施铮编著,2007.06 02.《SUN国际认证SCWCD试题精解》,施铮 03.《SUN国际认证SCWCD应试指南》,施铮 ⼗、北⽅交通⼤学出版社 01. 《⾯向对象程序设计:Java》,李⾦铭、晓宇、正元编著,2005.09 ⼗⼀、经济管理出版社 01.《JAVA编程技术基础》,林桂花主编,2006.02 ⼗⼆、上海科学技术出版社 01.《Java 2 认证考试指南与试题解析》孙卫琴等编著,2002.08【Sun Java认证考试教材教辅】相关⽂章:11-1211-2811-2811-2805-1307-19 10-25 11-20 11-20。
第五章对象和类本模块是Java编程语言中讨论面向对象语句及面向对象特征两部分中的第一部分。
第一节相关问题讨论—下面的问题与本模块中出现的材料相关:-到目前为止学习的Java编程语言的元素存在于大部分语言中,不管它们是否是面向对象语言。
-Java编程语言拥有什么特征使它成为一个面向对象语言?-“面向对象”这个术语真正的含义是什么?第二节目标学完本模块,你便能:-定义封装、多态性以及继承-使用private及public访问修饰符-开发程序段创建并初始化一个对象-对一个特殊对象调用一个方法-描述构造函数及方法重载-描述this引用的用途-讨论为什么Java应用程序代码是可重复使用的-在一个Java程序中,确认:-package语句-import语句-类、成员函数以及变量-构造函数-重载方法-覆盖方法-父类构造函数第三节对象基础面向对象程序(OOP)语句能使现实世界中的概念在计算机程序中变成模块。
它包括构造程序的特征以及组织数据和算法的机制。
OOP语言有三个特征:封装、多态性及继承。
所有这些特征与类的概念是息息相关的。
5.3.1抽象数据类型当数据类型是由数据项组成时,可以定义许多程序段或方法在该类型数据上专门运行。
当程序语言定义一个基本类型如整数时,它同时也定义了许多运算方法(如加法、减法、乘法和除法),因而它可以在该类型的实例中运行。
在许多程序语言中,一旦一个集合数据类型已经定义,程序员定义应用函数在该类型的变量上运行,该变量在代码和集合类型(除非可能在命名规则中)之间无任何联系。
有些程序语言,包括Java,允许在数据类型的声明和操作该类型变量的代码的声明之间有紧密的联系。
这种联系通常被称为抽象数据类型。
5.3.2类和对象Java编程语言中的抽象数据类型概念被认为是class。
类给对象的特殊类型提供定义。
它规定对象内部的数据,创建该对象的特性,以及对象在其自己的数据上运行的功能。
因此类就是一块模板。
Objects是在其类模块上建立起来的,很象根据建筑图纸来建楼。
同样的图纸可用来建许多楼房,而每栋楼房是它自己的一个对象。
应该注意,类定义了对象是什么,但它本身不是一个对象。
在程序中只能有类定义的一个副本,但可以有几个对象作为该类的实例。
在Java编程语言中使用new运算符实例化一个对象。
在类中定义的数据类型用途不大,除非有目的地使用它们。
方法定义了可以在对象上进行的操作,换言之,方法定义类来干什么。
因此Java编程语言中的所有方法都属于一类。
不象C++程序,Java软件程序不可能在类之外的全局区域有方法。
看一个类的例子:class EmpInfo {String name;String designation;String department;}这些变量(name, designation和department)被称为类EmpInfo的成员。
实例化一个对象,创建它,然后如下所述对其成员赋值:EmpInfo employee = new EmpInfo(); //creates instance = Robert Javaman "; // initializesemployee.designation = " Manager " ; // the threeemployee.department = " Coffee Shop " ; // membersEmpInfo类中的employee对象现在就可以用了。
例如:System.out.println( + " is " +employee.designation + " at " +employee.department);打印结果如下:Robert Javaman is Manager at Coffee Shop如下所述,现在可以在类中放入方法print( )来打印数据了。
数据和代码可以封装在一个单个实体中,这是面向对象语言的一个基本特征。
定名为print( )的代码段可以被作为一个方法而调用,它是术语“函数”的面向对象的称法。
class EmpInfo {String name;String designation;String department;void print() {System.out.println(name + " is " + designation + " at " + department);}}一旦对象被创建并被实例化,该方法就打印出类成员的数据。
按下述步骤实现:EmpInfo employee = new EmpInfo(); // creates instance = " Robert Javaman " ; // initializesemployee.designation = " Manager " ; // the threeemployee.department = " Coffee Shop " ; // membersemployee.print();// prints the details看看集合数据类型MyDate 和对下一个日期赋值的函数tomorrow( )。
按如下所述在MyDate类型和tomorrow( )方法之间创建一种联系:public class MyDate {private int day, month, year;public void tomorrow() {// code to increment day}}方法不是(作为分离的实体)在数据上运行,而数据(作为对象的一部分)对它本身进行操作。
MyDate d = new MyDate();d.tomorrow();这个注释表明行为是由对象而不是在对象上完成的。
记住,可以用点记号来指向MyDate类中的字段。
这就意味着“MyDate对象的day字段由变量d.调用。
于是,前面的例子“MyDate对象的tomorrow行为由变量d.调用”,换言之,就是d对象对它本身进行tomorrow()运算。
方法是一个对象的属性并且能作为单个单元的一部分与它所在对象的数据发生密切的相互作用,这个是一个关键的面向对象的概念。
(如果与这个概念不同,即,方法是分离的实体,从外部引入,作用在数据上。
)message passing(消息传递)这个术语通常用来表达这样一个概念,即:指示一个对象在它本身数据上做某项工作,一个对象的方法定义了该对象能在它本身数据上做什么。
5.3.3定义方法Java编程语言使用一种与其它语言,尤其是C和C++,非常相似的办法来定义方法。
其声明采用以下格式:<modifiers> <return_type> <name> ([<argument_list>]) <block> [throws <exception>] {<block>}<name>可以是任何合法标识符,并带有用已经使用的名称为基础的某些限制条件。
<return_type>表示方法返回值的类型。
如果方法不返回任何值,它必须声明为void(空)。
Java技术对返回值是很严格的,例如,如果声明某方法返回一个int值,那么方法必须从所有可能的返回路径中返回一个int(只能在等待返回该int值的上下文中被调用。
)<modifiers>段能承载许多不同的修饰符,包括公共的、受保护的,以及私有的。
公共访问修饰符表示方法可以从任何其它代码调用。
私有表示方法只可以由该类中的其它方法来调用。
受保护将在以后的课程中讨论。
<argument_list>允许将参数值传递到方法中。
列举的元素由逗号分开,而每一个元素包含一个类型和一个标识符。
throws <exception>子句导致一个运行时错误(异常)被报告到调用的方法中,以便以合适的方式处理它。
非正常的情况在<exception>中有规定。
例如:public void addDays(int days) {}告诉方法的本体,用<block>,来接受表示将天数增加到当前日期中的那个参数。
在这种方法中,值是以标识符days 来引用的。
5.3.4值传递Java编程语言只由值传递参数,也就是说,参数不能由被调用的方法来改变。
当一个对象实例作为一个参数传递到方法中时,参数的值就是对象的引用。
对象的内容可以在被调用的方法中改变,但对象引用是永远不会改变的。
下面的代码例子可以阐明这一点:1 public class PassTest {23float ptValue;45// Methods to change the current values6public void changeInt (int value) {7value = 55;8}910public void changeStr (String value) {11value = new String ( " different " );12}1314public void changeObjValue (PassTest ref) {15ref.ptValue = 99.0f;16}1718public static void main (String args[]) {1920String str;21int val;2223// Create an instance of the class2425PassTest pt = new PassTest ();26// Assign the int27val = 11;2829// Try to change it30pt.changeInt (val);3132// What is the current value?33System.out.println ( " Int value is: " + val); 3435// Assign the string36str = new String ( " hello " );3738// Try to change it39pt.changeStr (str);4041// What is the current value?42System.out.println ( " Str value is: " + str); 4344// Now set the ptValue45pt.ptValue = 101.0f;464748// Now change the value of the float49// through the object reference50pt.changeObjValue (pt);5152// What is the current value?53System.out.println ( " Current ptValue is: " +54 pt.ptValue);55 }56}这个代码输出如下内容:c:\student\source\> java PassTestInt value is: 11Str value is: helloCurrent ptValue is: 99.0字符串对象是不会被changeStr()改变的,但是,PassTest对象的内容被改变了。