JAWA和C++谁是更纯的面向对象的语…

来源:互联网 发布:java怎么输出所有汉字 编辑:程序博客网 时间:2024/05/21 14:48
于Java和c++这两个语言在面向对象方面,谁更纯方面,人们的认识是一致的。大家都知道,c++是一个混合、型的语言,而Java是一个纯面向对象的语言。c++是一个面向过程与面向对象的混合型语言。但是Java是不是100%纯面向对象的语言呢?有人说不是,因为Java中还有基本数据类型,还有不是对象的东西。所以Java不是100%的面向对象的语言。那么有100%面向对象的语言吗?如果按照是不是语言的全部结构都是对象构成的来区分是不是纯面向对象的语言这个标准来说,这样的语言是有的,但是很少,而且这种语言现在使用的人也不多。这样的语言就是Smalltalk,在这个语言里,所有的东西都是对象,哪怕是两个数字相加,也需要使用两个数字对象之间的作用来完成。这是严格的关于纯面向对象的标准,我认为其实我们可以把这个标准放跨一些。面向对象的核心是对象,所以我们可以这样来判断一个语言室不是纯面向对象的语言。如果这个语言离开的对象什么也做不成,那么这个语言就是纯面向对象的语言,反之,如果对象在这个语言里占据的重要的地位,但是离开对象,这个语言仍然开始完成工作,那么这个语言就是不是纯面向对象的。也就是说,我们可以把对象不是这个语言“工作”的必要条件来作为是不是纯面向对象的判断标准。如果这样做的话,那么我们就可以看出,Java绝对是纯面向对象的。

     为什么这样说呢?在Java里,没有什么事情是可以离开对象来完成的例如一个最简单的Helloworld程序,也必须依赖一个类才可以实现。而在C++中,这样一个简单的东西,我们是不会把他放到一个类里来完成的。我们会直接在主函数中来完成,这样是的程序十分的简练。

 Java中的HelloWorld,

在HelloWorld.java文件中

 c++中的HelloWorld,

在HelloWorld.cpp文件中

public class HelloWord{
    public  static void main(String[]args){
         System.out.println("Hello word!");
    }
}

 #include
int main(){
   cout<<"Helloword!n";     

    return 0; 

  

      我们可以看到在Java中即使是最简单的功能的实现也离不开类。而在c++中却不同,没有类我们照样可以完成很多功能。而且我们看到,在c++中,我们离不开的其实是过程。我们开发一个程序,最后要想运行起来,还必须有一个程序的入口点,有一个包含主函数的文件才行。只有类而没有程序的入口点,那么我们的程序是无论如何也运行不起来的。而在Java中却不同,Java中程序要想运行也需要一个入口点,但是这个入口点不在类的外面而就在类的里面,想要程序运行起来,我们只要在类里放上一个入口点积可以了,而不需要在单独的为程序做一个入口点。当然了,在Java中,你也做不到这一点,因为在Java中,没有独里而不属于某一个类的的函数,所有的函数都是属于一个类的。

      通过比较,我们可以看到,Java对于简单的程序来说,并不是一个好的选择。例如我们需要完成的功能只是显示一句“HelloWorld!”,这个东西不属于任何一个的对象,仅仅就是这样的一个过程而已,因为Java是纯面向对象的,所以,这样的的一个纯过程的东西,它也必须和一个类向联系。而在c++中就没有了这样的烦恼。一个纯粹的过程,我们就用过程来完成,而一个对象才用一个对象来完表示。

      由此我们看出,面向对象的语言不是越纯越好的的。什么是最要的语言?越接近人类思维思维习惯就是越好的语言。面向对象的与面向过程相比更加的符合人们的思维习惯,所以现在面向对象才流行起来,但是我们说面向对象比面向过程更加的符合人们的习惯,指的是大多数情况下,而不是所有的情况,在有些时候,按照马克思主义的观点,世界就是有事物和实物的过程构成的。在描述一个过程的时候,我们使用面向过程的语言,要比使用面向对象的语言来的更加的直接。所谓过犹不及,什么东西都有两面性我们要充分的利用其有利的地方而不是为了追求一个形式的东西而舍本逐末。