选择显示字体大小

java咖啡馆(8)——大话面向对象(下)

  第三篇:(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的方法。从而,对包外的类而言,姓名数据是只读的。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons