博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
接口与继承:不允许继承的类
阅读量:5097 次
发布时间:2019-06-13

本文共 1697 字,大约阅读时间需要 5 分钟。

示例程序

1 public final class Address 2 { 3     private final String detail; 4     private final String postCode; 5  6     //在构造方法里初始化两个实例属性 7     public Address() 8     { 9         this.detail = "";10         this.postCode = "";11     }12     public Address(String detail , String postCode)13     {14         this.detail = detail;15         this.postCode = postCode;16     }17     //仅为两个实例属性提供getter方法18     public String getDetail()19     {20          return this.detail;21     }22 23     public String getPostCode()24     {25          return this.postCode;26     }27     //重写equals方法,判断两个对象是否相等。28     public boolean equals(Object obj)29     {30         if (obj instanceof Address)31         {32             Address ad = (Address)obj;33             if (this.getDetail().equals(ad.getDetail()) && this.getPostCode().equals(ad.getPostCode()))34             {35                 return true;36             }37         }38         return false;39     }40     public int hashCode()41     {42         return detail.hashCode() + postCode.hashCode();43     }44 45     public static void main(String args[])46     {47         Address a = new Address();48         Address b = new Address("dscfd","fghgh");49         50         System.out.println("a:"+a.getDetail()+a.getPostCode()+a.hashCode());51         52         System.out.println("b:"+b.getDetail()+b.getPostCode()+b.hashCode());53         54         System.out.println(a.equals(b));55     }56 }

结果截图

分析:

以final声明的方法不允许覆盖。

以final声明的变量不允许更改。

利用final,我们可以设计出一种特殊的“只读” 的“不可变类”。

 

创建“不可变的类”的对象后,此对象的属性不可改,而且也无法从此类派生出新子类。String就是一个典型的例子。

不可变的“类”有何用?

可以方便和安全地用于多线程环境中, 访问它们可以不用加锁,因而能提供较高的性能。

 JDK中的实例:String

转载于:https://www.cnblogs.com/weipinggong/p/4938896.html

你可能感兴趣的文章
沉淀再出发:redis的安装和使用
查看>>
Oracle 安装OEM 报错: 无法对所有EM 相关账户解锁 解决方法
查看>>
遗传算法(一)
查看>>
word之论文摘要
查看>>
GitHub
查看>>
密码学趣谈
查看>>
菜根谭#194
查看>>
新闻发布系统
查看>>
Python之道(一)之安装Python
查看>>
QQ三方登录
查看>>
OpenStack Summit Paris 会议记录 - 11-05-2014
查看>>
乞讨 间隔[a,b]在见面p^k*q*^m(k>m)中数号码
查看>>
ZOJ 3794 Greedy Driver spfa
查看>>
iOS开发UI调试神器----Reveal
查看>>
Java学习总结之第二章 数据类型和变量
查看>>
Date时间
查看>>
学习canvas
查看>>
SharePoint CAML判断一个列表项是否有附件
查看>>
后台学习
查看>>
debugging information corrupt; recompile module
查看>>