快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

《Effective Java》学习笔记(4)


五。C语言结构的替代

如何用java模仿c语言中的一些结构

第19条:用类代替结构

    对于C语言中的结构,java可以用类来代替,不过你不应让类的成员变量可以被公开访问,成员变量应该是private,然后提供一些读写操作来操纵这些变量,想比于C或者C++里的结构类型,这样的类更为安全,体现了OOP的封装性。示例代码

public class Point{

    private float x;

   private float y;

    public float getX(){ return x;}

    public float getY(){ return y;}

    public void setX(int x){ this.x=x;}

    public void setY(int y){ this.y=y;}

}

第20条:用类层次来代替联合

对于这点,俺不具体说明了,有爱好的自己看看联合是怎么回事。书中举了闻名的shape例子

第21条:用类来代替枚举结构

    java取消了C语言中的枚举类型(注重:jdk5.0已经增加了这一特性,有爱好的自己查找下资料),这里谈的是如何在5.0以前模仿这一结构。

C语言:typedef enum{ CIRCLE,RECTANGLE,SQUARE} shape;

java语言:

public class shape{

  private final String name;

   public shape(String name) { this.name=name;}

   public String toString(){ return name;}

   public static final shape CIRCLE=new shape("CIRCLE");

   public static final shape RECTANGLE=new shape("RECTANGLE");

   public static final shape SQUARE=new shape("SQUARE");

}

以后就可以用shape.CIRCLE,shape.SQUARE来访问其中的变量,可以看到,java的实现模型更为安全,它进行了类型检查。很美丽的设计

第22条:使用类和接口来代替函数指针

  java没有独立于类或者接口的函数,任何方式都是包含在某个类和实例里面,所以,在C里面的函数指针就完全可以用类和接口来代替,很明显的例子,如compareable接口,某个需要实现排序的数组,在调用

Arrays.sort()时,你可以传入一个实现了compareable接口的比较器。这就相称于一个函数指针。






返回类别: 教程
上一教程: JAVA程序员必读:基础篇(4)类和继续
下一教程: 在Unix/Linux上令(java)JVM支持中文输出

您可以阅读与"《Effective Java》学习笔记(4)"相关的教程:
· 《Effective Java》学习笔记(3)
· 《Effective Java》学习笔记(2)
· 《Effective Java》学习笔记(1)
· java虚拟机学习笔记
· java学习笔记
    微笑服务 优质保证 索取样品