`

证明Java不是纯面向对象语言

阅读更多

一、论述

       在我们刚接触Java语言的时候,所有的教材或老师都会和你讲这样一点:Java是一门面向对象的编程语言。用2015年比较流行的网络语就是:Java是一门面向对象的编程语言、Java是一门面向对象的编程语言Java是一门面向对象的编程语言,重要的事说三遍!!!

       那Java到底是怎样的一门面向对象的编程语言呢,鄙人给出的结论是Java不是纯面向对象的。也许,已经有前辈提出了和我一样的结论,这没关系。下面通过一个具体的实例进行证明一下我的结论。

 

二、实例证明

       1、定义一个通用的接口:CompareMethod

/**
 * Created by user on 2016/1/20.
 */
public interface CompareMethod {
    public boolean isEqual(int x, int y);
    public boolean isEqual(Integer x, Integer y);
}

     

        2、以Java语言和Scala语言分别实现这个接口

/**
 * Created by user on 2016/1/20.
 */
public class CompareMethodWithJava implements CompareMethod{
    @Override
    public boolean isEqual(int x, int y) {
        return x == y;
    }

    @Override
    public boolean isEqual(Integer x, Integer y) {
        return x == y;
    }
}
/**
  * Created by user on 2016/1/20.
  */
class CompareMethodWithScala extends CompareMethod{
  override def isEqual(x: Int, y: Int): Boolean = {
       x == y
  }

  override def isEqual(x: Integer, y: Integer): Boolean = {
       x == y
  }
}

       

         3、分别给出对应的测试用例

/**
 * Created by user on 2016/1/20.
 */
public class OptWithJava {
    public static void main(String args[]){
        CompareMethodWithJava cmwj = new CompareMethodWithJava();
        System.out.println("1>>>>: " + cmwj.isEqual(10,10));

        Integer x = new Integer(10), y = new Integer(10);
        System.out.println("2>>>>: " + cmwj.isEqual(x,y));
    }
}
/**
  * Created by user on 2016/1/20.
  */
object OptWithScala extends App{
    def result1() : Boolean = {
       def x: Int = 10
       def y: Int = 10
       new CompareMethodWithScala().isEqual(x,y)
    }
    println("1<<<<: " + result1())

    def result2() : Boolean = {
       def x: Integer = new Integer(10)
       def y: Integer = new Integer(10)
       new CompareMethodWithScala().isEqual(x,y)
    }
    println("2<<<<: " + result2())
}

 

三、测试结果比较

     1、运行Java类型的测试用例,结果如附件中的图一

     2、运行 Scala类型的测试用例,结果如附件中的图二

     3、由此可以证明:Java不是纯面向对象语言

  • 大小: 5.7 KB
  • 大小: 5.6 KB
分享到:
评论

相关推荐

    探讨javascript是不是面向对象的语言

    2 一些评价说javascript不是真正面向对象的因为它不能提供信息的隐藏。也就是,对象不能有私有变量和私有方法:所有的成员都是公共的。但随后有人证明了javaScript对象可以拥有私有变量和私有方法。另外还有批评说...

    学习JAVA的三十个基本概念

    Java新手入门的30个基本概念 ...很容易掌握,而且Java是完全的彻底的面向对象的,其中提出了很好的 GC(Garbage Collector)垃圾处理机制,防止内存溢出。  Java的白皮书为我们提出了Java语言的11个关键特性。

    [Java] Java 数据结构和算法 第2版 (中英双版)

    - 学会如何用面向对象的编程简化数据结构和算法  本书以一种易懂的方式教授如何安排和操纵数据的问题,其中不乏一些难题:了解这些知识以期使计算机的应用获得最好的表现。不管使用何种语言或平台,掌握了数据结构...

    Fuxi语言集成化开发环境1.63

    Fuxi语言集成化开发环境1.63 (软件) Fuxi(伏羲)程序设计语言是一种面向对象的、并发的、函数型与逻辑型语言相...我们设计Fuxi语言不是为了去证明一个观点,而是去解决一些问题。Fuxi语言来源于实践,服务于应用。

    Java新手入门的30个基本概念

    称许可以在windows,solaris,linux其他操作系统上使用完全相同的代码.Java的语法与C++语法类似,C++/C程序员很容易掌握,而且Java是完全的彻底的面向对象的,其中提出了很好的GC(Garbage Collector)垃圾处理机制,防止...

    java面向对象笔试题-awesome-functional-programming:另一个用于收集有关函数式编程的文章、视频等的资源

    java一个对象笔试题 内容 教程和文章 (一定有) \ (很棒的文章) 惊人的 图书 资源 (***) 组合器 (*) 演示文稿 (一定有) 视频 优酷频道 图书馆 / 语言 - 一种编程语言,旨在作为编程教育的绝佳选择,同时探索...

    Java数据结构和算法中文第二版(1)

    面向对象程序语言 面向对象设计(OOD)和软件工程 附录C 问题答案 第1章,综述 第2章,数组 第3章,简单排序 第4章,栈与队列 第5章,链表 第6章,递归 第7章,高级排序 第8章,二叉树 第9章,红-黑树 ...

    Java数据结构和算法(第二版)

    考虑如何利用它们改进编程的效率 学会如何用面向对象的编程简化数据结构和算法 本书以一种易懂的方式教授如何安排和操纵数据的问题,其中不乏一些难题;了解这些知识以期使计算机的应用获得最好的表现。不管使用何种...

    Fuxi语言集成化开发环境v1.70

    我们设计Fuxi语言不是为了去证明一个观点,而是去解决一些问题。Fuxi语言来源于实践,服务于应用。 Fuxi 1.70 改进部分 1) 建立例外处理机制,程序中可使用raise来触发例外,例如, OnCardClick( Card card ==...

    Java数据结构和算法 (第二版)

    学会如何用面向对象的编程简化数据结构和算法 本书以一种易懂的方式教授如何安排和操纵数据的问题,其中不乏一些难题;了解这些知识以期使计算机的应用获得最好的表现。 不管使用何种语言或平台,掌握了数据结构和...

    JAVA面试题JAVA面试题JAVA面试题JAVA面试题

    面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多...

    SpringBoot项目java学习平台.zip

    1. 课程管理:平台包含多门由浅入深的Java课程,涵盖基础知识、面向对象编程、数据结构、多线程等主题。 2. 视频教学:每门课程都配有高清视频讲解,由经验丰富的讲师授课,便于用户理解和吸收知识点。 3. 编程...

    语义网 java 范畴论小论文

    本文以范畴论中的集合范畴为背景,通过范畴论中的集合范畴解释和阐述了计算机科学中JAVA面向对象语言理论中的集合框架里的抽象概念,从而证明了范畴论在不同学科之间的关联起着重要作用。 关键字:范畴;集合范畴;...

    Java数据结构和算法.(第二版)

    学会如何用面向对象的编程简化数据结构和算法 本书以一种易懂的方式教授如何安排和操纵数据的问题,其中不乏一些难题;了解这些知识以期使计算机的应用获得最好的表现。 不管使用何种语言或平台,掌握了数据结构和...

    《Java数据结构和算法(第二版)》

    学会如何用面向对象的编程简化数据结构和算法 本书以一种易懂的方式教授如何安排和操纵数据的问题,其中不乏一些难题;了解这些知识以期使计算机的应用获得最好的表现。 不管使用何种语言或平台,掌握了数据结构和...

    RESOLVE:RESOLVE(带有验证的可重用SOftware语言)是一种规范和编程语言,旨在验证面向对象程序的正确性

    RESOLVE(带有验证的可重用SOftware语言)是一种规范和编程语言,旨在验证面向对象程序的正确性。 RESOLVE语言是从头开始设计的,旨在促进数学推理。 这样,该语言为断言(例如事前条件)提供了语法槽,这些断言...

    Java数据结构和算法中文第二版part A

    学会如何用面向对象的编程简化数据结构和算法 本书以一种易懂的方式教授如何安排和操纵数据的问题,其中不乏一些难题;了解这些知识以期使计算机的应用获得最好的表现。 不管使用何种语言或平台,掌握了数据结构和...

Global site tag (gtag.js) - Google Analytics