`
atmosphere
  • 浏览: 14755 次
  • 性别: Icon_minigender_1
博客专栏
807a8b01-317a-34bf-9d0f-011a7c5a74b4
javase7官方教程翻译...
浏览量:11094
社区版块
存档分类
最新评论

JAVASE官方教程:接口之把接口作为类型使用(4)

阅读更多

当你定义了一个接口,你也定义了一种引用数据类型(reference data type).你可以在任何可以使用其他数据类型名的地方使用接口名称.如果你定义了一个接口类型的变量,你只能用实现了这个接口的类的实例来给他赋值.

例如,有一个在两个对象之中找出最大的方法,每一个对象都必须从实现了Relatable的类实例化:

public Object findLargest(Object object1, Object object2) {
   Relatable obj1 = (Relatable)object1;
   Relatable obj2 = (Relatable)object2;
   if ( (obj1).isLargerThan(obj2) > 0)
      return object1;
   else 
      return object2;
}

把object1转换成Relatable类型,他才能调用isLargerThan方法.

如果你的许多类都实现了Relatable,这些从哪些类实例化的对象都可以通过findLargest()方法来比较--两个对象必须是同一个类的实例.同样,他们也可以通过下面的方法进行比较:

public Object findSmallest(Object object1, Object object2) {
   Relatable obj1 = (Relatable)object1;
   Relatable obj2 = (Relatable)object2;
   if ( (obj1).isLargerThan(obj2) < 0)
      return object1;
   else 
      return object2;
}

public boolean isEqual(Object object1, Object object2) {
   Relatable obj1 = (Relatable)object1;
   Relatable obj2 = (Relatable)object2;
   if ( (obj1).isLargerThan(obj2) == 0)
      return true;
   else 
      return false;
}

 不管他们的类继承是什么样子,这些方法对每个"相关的"对象起作用.

分享到:
评论

相关推荐

    JAVASE教程

    ### JavaSE教程知识点详解 #### 第一章:Java预备知识 - **常用DOS命令**:介绍常用的DOS(磁盘操作系统)命令,如`dir`(列出当前目录下的文件和文件夹)、`cd`(改变当前目录)等,帮助初学者熟悉Windows命令行...

    JavaSE基础视频

    3. **基本语法**:包括数据类型(如整型、浮点型、字符型和布尔型)、变量、常量的声明与使用,以及运算符的规则。 4. **控制流**:讲述条件语句(if、if-else、switch)和循环语句(for、while、do-while),以及...

    JavaSE基础入门视频教程33天之(2) part1

    本教程“JavaSE基础入门视频教程33天之(2) part1”旨在为初学者提供全面的Java基础知识,帮助他们从零开始掌握这门强大的编程语言。通过33天的学习计划,目标是使学员在完成课程后具备扎实的JavaSE基础,有能力...

    JavaSE基础入门视频教程33天之(11) part2

    本教程是针对JavaSE基础入门的33天学习计划的一部分,第11天的内容主要聚焦在面向对象编程的核心概念上,旨在帮助初学者构建坚实的Java编程基础,为未来的高薪就业打下坚实根基。 首先,"day11_11(面向对象)接口和...

    JavaSE基础入门视频教程33天之(1) part2

    本套视频教程“JavaSE基础入门视频教程33天之(1) part2”旨在帮助初学者从零开始掌握Java编程语言。教程分为33天的学习计划,第一天的上半部分将涵盖Java的基础语法,帮助学员建立坚实的编程基础,为未来成为初级...

    javase 对数据库的操作

    在JavaSE中操作数据库,我们通常会利用Java的数据库连接(JDBC)API,它提供了与各种类型的数据库进行交互的能力。本教程将深入探讨如何在JavaSE环境中实现数据库的操作,结合前端技术如jQuery、AJAX以及表格插件...

    圣思园张龙老师讲的JAVASE的pdf文档,讲的非常详细

    总的来说,《圣思园张龙老师讲的JAVASE的pdf文档》是一部全面而深入的JavaSE教程,无论你是初学者还是有一定经验的开发者,都能从中受益匪浅。通过这份文档的学习,你将能够更好地理解和运用Java,为后续的JavaEE和...

    JAVASE 笔记

    这份"JAVASE 笔记"显然是一份深入学习Java SE的重要资料,由"黑马程序员"提供,这是一家知名的在线编程教育机构,以其详尽的教程和实战项目著称。现在,让我们一起深入探讨Java SE中的关键知识点。 1. **Java基础**...

    JavaSE基础入门视频教程33天之(10) part2

    JavaSE基础入门视频教程33天之(10)部分主要涵盖了面向对象编程的重要概念,这对于初学者来说是掌握Java编程的关键。在这个阶段的学习中,你将深入理解面向对象编程的核心理念,包括抽象类的定义、特点、使用方式...

    javase基础 Java学习资料

    - **Runnable接口**:作为线程任务的实现,可与其他类进行组合。 - **线程同步**:synchronized关键字、wait()、notify()和notifyAll()避免并发问题。 - **线程池**:ExecutorService和ThreadPoolExecutor实现...

    达内教学课件JAVASE1

    《达内教学课件JAVASE1》是一个涵盖了Java基础到高级特性的全面教程,主要针对初学者和希望深入理解Java SE(标准版)技术的开发者。这个课件包括了多个核心主题,如Core Java、数据库与XML交互、Java数据库连接...

    Java SE 基础 练习 Java学习资料 javase自学练习代码

    Java SE(标准版)是Java编程语言的核心部分,它提供了编写桌面应用、服务器应用程序和嵌入式系统的平台。...在实践中遇到问题时,不要忘记查阅官方文档、在线教程或寻求社区帮助,以加深理解和提高解决问题的能力。

    javase.rar

    4. **API(Application Programming Interface)**: 提供了大量预定义的类和接口,如`java.lang`、`java.io`、`java.util`、`java.net`等包,涵盖了各种功能需求。 5. **JDBC(Java Database Connectivity)**: 是...

    传智播客视频JavaSE学习笔记

    实现`Runnable`接口并作为`Thread`构造函数的参数。 #### 三、线程安全问题 线程安全问题主要由共享资源的并发访问引起,解决方法通常采用同步机制,如`synchronized`关键字、显式锁`Lock`等。 #### 四、同步的两...

    《Java基础教程》PDF文件

    Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。它的设计目标是提供一种简单、健壮、安全、平台无关且高性能的语言,适合网络环境。《Java基础教程》是一本...

    basicjava_pdf

    4. **04_JavaSE(2)**: 这个可能是对Java SE更深入或特定领域的探讨,如: - JDBC(Java Database Connectivity):数据库连接、SQL操作、结果集处理。 - 网络编程:Socket通信、URL和URLConnection类。 - XML...

    使用JFreeChart小结(一)

    在本文中,我们将深入探讨如何使用JFreeChart库在Java应用程序中创建丰富的图表。JFreeChart是一个开源项目,提供了一套全面的API,用于生成多种类型的2D图表,包括线图、柱状图、饼图、散点图、面积图等。在"使用...

    java源码剖析-javase-base-resource:从源码角度剖析不一样的JavaSE,对应博文请访问

    4. **异常处理**:理解如何正确使用try-catch-finally语句,掌握Checked和Unchecked异常的区别,以及如何设计和处理异常,有助于编写健壮的代码。 5. **多线程**:Java提供了丰富的并发工具,如Thread、Runnable、...

    JAVA新手入门基础全面学习教程.doc

    - **通用编程**:Object类作为所有类的基类,支持泛型和类型转换。 - **封装**:隐藏对象内部实现细节,仅对外暴露公共接口。 - **重载**:同一类中方法名相同但参数列表不同的方法。 - **重写**:子类覆盖父类...

    Java SE编程入门教程 java泛型(共11页).pptx

    泛型是参数化类型的一种形式,意味着你可以将数据类型作为参数传递给类、接口或方法。例如,`ArrayList&lt;E&gt;`是一个泛型类,其中`E`是一个类型参数,它可以被任何具体的类型替换。在`ArrayList`的实例中,你可以使用`...

Global site tag (gtag.js) - Google Analytics