java是纯面向对象的吗?

java是纯面向对象的吗?,java,Java,我们说java不是纯粹面向对象的,因为原始数据类型不是对象。但在下面的代码中,对象是如何保存原始数据类型的 public class Test{ public Object meth(Object obj){ System.out.println(obj instanceof Object);//It prints true System.out.println("Value = "+obj);//It prints "Value = 1"

我们说java不是纯粹面向对象的,因为原始数据类型不是对象。但在下面的代码中,对象是如何保存原始数据类型的

public class Test{

    public Object meth(Object obj){
        System.out.println(obj instanceof Object);//It prints true
        System.out.println("Value = "+obj);//It prints "Value = 1"
        return obj;
    }


    public static void main(String[] args) {
        int a = 1;
        System.out.println(new Test().meth(a));
    }
}

它叫。基本上,当您在要求原始数据类型为对象的上下文中使用它们时,Java编译器会将它们转换为对象。

因为原始数据类型(用Java术语)会自动装箱为目标类型。
例如,int被包装在整数对象中。

因为Java中有8种基本类型,所以它不是纯粹的面向对象语言。但是基本类型使Java更高效。

是的,你是对的……Java不是纯面向对象的,因为它支持基本数据类型,如int、byte、long。。。等,以供使用,而不是对象

上述概念称为自动装箱

自动装箱:自动装箱是Java编译器在原语类型与其对应的对象包装器类之间进行的自动转换


来源:

Java纯粹是面向对象的,因为Java中的每一件东西都被视为对象。但是,Java不是纯粹面向对象的,因为它仍然支持违反OOPs原理的基本数据类型。

ava不是纯粹面向对象的,因为它支持基本数据类型,如int、byte、long,这是真的,但我们在Java中有整数字符类,隐式完成从原语到这些类的转换称为自动装箱。这也可以明确地完成

由于以下原因,Java不是纯粹的面向对象语言

  • Java支持原始数据类型
  • Java supoort是静态的,它们属于类而不是对象
  • java支持枚举

  • 根据OOP,一切都应该是一个对象。

    在您的上下文中,它被称为自动装箱,因为您只是将一个非原语值传递给一个对象参数,它将自动转换为对象类型

    因为如果使用原语,java不是纯粹面向对象的。有关更多详细信息,请参见以下内容

    Java不是纯粹的面向对象编程语言 满足编程语言是面向对象的,那么它满足 面向对象的概念 封装/数据隐藏 遗产 多态性 抽象 所有预定义类型都是对象 所有操作都是通过向对象发送消息来执行的 所有用户定义的类型都是对象。 这些就是问题所在。有人说java支持int,float这样的原始数据类型,所以它不是面向对象的,而是基于包装类INTGER,float
    java支持的东西static关键字它不遵循oops,所以java不是纯面向对象语言

    不,这不是因为数据类型不是类,不像c#中的数据类型是类。是的,包装类稍后在java中引入,但有自动装箱和外装箱的概念,这使得情况变得更糟复杂。

    是的。Java不是纯粹面向对象的,因为它包含的原始数据类型不是对象。在您的场景中,您将向函数传递一个int值。其工作的原因是自动装箱。 下面提供的链接可能有助于更好地理解自动装箱。

    请参阅
    自动装箱
    上的文档。Java有一个整数类。正如其他人所提到的,您所观察到的现象是由于Java的自动装箱功能。但是我认为谈论语言是否是“纯粹面向对象的”并没有多大用处;“面向对象”的确切含义甚至没有真正的定义,因此不可能确切地说一种语言是否与该定义完全匹配。实际上,每个类都是一个对象,而
    java.lang.class
    类是相同的
    class
    类型化对象。当然,原语在很大程度上破坏了纯度,而与自动装箱无关。