通行证: 用户 密码
http://www.pconline.cn/
汽车网 | 游戏网 | 时尚女性
分站:北京 上海 广州 深圳 香港
广西 重庆 山东 江苏 辽宁 福建
首 页 | 今日报价 | 新闻中心 | 数码世界 | 硬件资讯 | 软件资讯 | 下 载 | 游 戏 |
论 坛 | 产 品 库 | 渠道商情 | 招聘培训 | 二    手 | 评 测 室 | 导 购 | 社 区 |
摄影
部落
手 机
数码相机
随身听
 DIY配件
笔记本
 台式机
摄像机
精品廊
-
您现在的位置:软件资讯 > 开发特区 > 开发语言 > Java
  Java咖啡馆(8)——大话面向对象(下) 出处:电脑爱好者
[ 2005-03-25 00:08:06 ] 作者:Gary Chan 责任编辑:xietaoming
-

  第三篇:(3)Eclipse

  第四篇:(4)品味第一杯咖啡

  第五篇:(5)Java语言基础

  第六篇:(6)编写猜数字游戏

  第七篇:(7)大话面向对象(上)

  构思这篇咖啡馆的时候时值奥运圣火熊熊燃烧,看到中国奥运代表团努力为国争光,不由不决定把这次的主题献给我们的奥运健儿!

面向对象编程

  如果你是Java咖啡馆的常客,那么在不知不觉中你早已接触并运用过Java的面向对象知识。在这回的咖啡馆中,让我们详细剖析一个面向对象编程的实例,把知识巩固下来。

  奥运是国际性的运动盛会,中国运动员自然要用英文形式的名字才便于同国际接轨。这回要编写的程序便是用来解析英文名字的工具。通常,Gary Chan这样的英文名字形式表示名在前、姓在后。而Yao, Ming这样的形式则表示姓在前名在后。大家千万不要以为Gary在这里平白无故用Yao, Ming打广告,Yao初中时候可是跟Gary一个班的,他被语文老师仰着头臭骂痛哭后,经常是Gary安慰他,并经常一同骑车回家。看着今日的Yao已经是世界级的运动员为国争光了,Gary更需要加倍努力了……

  OK,言归正传,我们的程序将自动判断名字形式,并且分解出姓和名。还是老规矩,请用Eclipse生成一个名为Chap 07 NameParser的项目,并且加入一个新的名为NameParser类,在Package属性填写com.cfan.garychan.nameparser。如果你忘记了package的知识,请参考《Java咖啡馆(6)—编写猜数字游戏 》中关于包概念的描述。

  回顾一下,类是定义了从类生成的实例(instance)中的数据和方法的关系的模板。有人喜欢把类比作图章,图章敲出来的图案便是对象,的确很形象。

  Java中用class关键字来定义类,不过我们用Eclipse来定义更加方便。仍然用Eclipse新建一个叫做Namer的类,记得不要在public static void main(String[] args)前面打勾,确定后Eclipse便生成一个新的Java源文件Namer.java,里面的代码如下:

public class Namer {

}

  这个类非常简单,可惜不能做任何事情。

  1.封装

  面向对象程序设计中,一个非常重要的技术便是封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。这样做的好处在于可以使类内部的具体实现透明化,只要其他代码不依赖类内部的私房数据,你便可以安心修改这些代码。此外,这样做也是出于安全方面的考虑,如果代表网上支付卡密码的变量随便就可以被访问到,这样的系统谁还敢用呢?

  封装主要依靠对类、数据和方法的访问控制,从语法上讲就是加上private、protected、public等关键词,如果没有关键词修饰则默认为package。它们控制权限如下表所示:

Specifier 类 子类 包 世界
private X
protected X X* X
public X X X X
package X X

  注意上面的X*,父类的protected部分,只有在与父类在同一个包内的子类才能够访问,否则也是不可访问的。

  让我们结合实例理解一下。稍微把Namer类改一下:

public class Namer {
    protected String surname;  // 姓
    protected String firstname; // 名

    public String getFirstname() {
        return firstname;
    }

    public String getSurname() {
        return surname;
    }
}

  这个类有两个String类型的成员变量,surname和firstname,分别用来储存姓和名。这两个成员变量前都有protected修饰词,按照表格,这两个变量仅能够被类本身、子类以及包中其他类操作,而包外的类则无权访问。不过,为了跟包外的代码进行沟通,Namer类提供了getFirstname和getSurname这两个public的方法。从而,对包外的类而言,姓名数据是只读的。

[1] [2] [3] [下一页]

正在加载评论,请稍候…


ad
发给好友 我要报错 投稿给我们 加入收藏 返回顶部

本栏今日更新
相关文章
·MSN Msg好友人数上限增至300人
·效率至上,ACDSee 7新版发布
·IE项目经理否认Firefox比IE安全
·超级语音大战:QQ VS Tom-skype
·颠覆传统:玩转Maxthon里的网页版QQ
·表情[文字]:我很郁闷
·Shift键两个鲜为人知的小技巧
·Java咖啡馆(8)——大话面向对象(下)
·Java咖啡馆(7)——大话面向对象(上)
·Java咖啡馆(5)——Java语言基础
·java漏洞竟是跨浏览器攻击元凶
·Java咖啡馆(6)——编写猜数字游戏
·理解C++面向对象程序设计中的抽象理论
·Java咖啡馆(4)——品味第一杯咖啡
·C++面向对象编程入门:构造函数与析构函数
·C++面向对象编程入门:类(class)

完美时尚娱乐:2004年腾讯QQ评测大观
精彩无限:MSN Shell4使用指南
亲手制作鲜花情人贺卡送给她
挑战伏明霞?企鹅跳水游戏,看你能得多少分?

新闻搜索
高级搜索
Flash排行榜
·《老鼠爱大米》黑白版
·Take Me To Your Heart
·当你孤单你会想起谁
·别说我的眼泪你无所谓
·下辈子如果我还记得你
·超好玩小游戏!淘金者
·《老鼠爱大米》学生版
·大学自习室继-就说
·光良最新力作-童话
·等你说爱我-如果有一天
热点专题
·全面了解FireFox浏览器
·"麦"进新时代:QQ玩超级语音
·妙手解决多媒体播放的痼疾
·Tom-Skype:分享语聊新体验
·回味:04年软件"开门七件事"
·04年软件八大热点精彩回眸
·欢乐Flash带你畅游圣诞
·优化:打造更好用的WinXP
·十大超人气趣味小游戏
·最受关注补丁SP2横空出世
·寻觅流行IM最爱大决战!
·04十大最动人心扉的情感MV
IT培训十大热门文章
-