• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

《Effective Java》学习笔记(4)

servlet/jsp 搞代码 7年前 (2018-06-18) 281次浏览 已收录 0个评论

五。c语言结构的替代

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

第19条:用类代替结构

http://www.gaodaima.com/40489.html《Effective Java》学习笔记(4)

    对于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接口的比较器。这就相当于一个函数指针。

欢迎大家阅读《《Effective Java》学习笔记(4)》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:《Effective Java》学习笔记(4)

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址