java纯粹面向对象吗?

时间:2013-03-18 05:17:24

标签: 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"
        return obj;
    }


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

11 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:4)

由于Java中有8种原始类型,因此它不是纯粹的面向对象语言。但原始类型使Java更有效率。

答案 2 :(得分:2)

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

答案 3 :(得分:2)

是的你是对的... Java不是纯粹的面向对象,因为它支持使用的原始数据类型,如int,byte,long ......等,它们不是对象......

以上概念称为 autoboxing

  

Autoboxing :Autoboxing是Java编译器在基元类型和相应的对象包装类之间进行的自动转换

来源:http://docs.oracle.com/javase/tutorial/java/data/autoboxing.html

答案 4 :(得分:2)

Java是纯粹面向对象的,因为Java中的每个东西都被视为一个Object。但是,Java并不是纯粹的面向对象,因为它仍然支持违反OOP原则的原始数据类型。

答案 5 :(得分:0)

ava不是纯粹的面向对象,因为它支持原始数据类型,如int,byte,long为True,但是我们在java中有类似Integer Character类的类,当隐式执行时从原语到这些类的转换称为autoboxing。这也可以明确地完成。

答案 6 :(得分:0)

Java不是纯粹的面向对象语言,原因如下。

  1. Java支持原始数据类型。
  2. Java supoort static,这些属于不对象的类。
  3. java支持枚举。
  4. 根据OOP,一切都应该是一个对象。

答案 7 :(得分:0)

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

答案 8 :(得分:0)

因为如果使用原语java不是纯粹的面向对象。有关详细信息,请参阅此link

答案 9 :(得分:0)

Java不是纯粹的面向对象编程语言 满足编程语言是面向对象然后它满足 哎呀概念 封装/数据隐藏 遗产 多态性 抽象化 所有预定义类型都是对象 通过向对象发送消息来执行所有操作 所有用户定义的类型都是对象。 这些都是事情。有人说java支持原始数据类型,比如int,float,所以它不是面向对象的,但它基于Wrapper类INTGER,FLOAT 事情java suppourt static keyword它不遵循oops所以java不是纯粹的面向对象语言

答案 10 :(得分:0)

是.Java不是纯粹的面向对象,因为它包含不是对象的原始数据类型。在您的方案中,您将int值传递给函数。这背后的原因是 autoboxing 。 以下提供的链接可能有助于理解自动装箱。 click here