繁体   English   中英

java纯粹面向对象吗?

[英]Is java Purely Object Oriented?

我们说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中有8种原始类型,因此它不是纯粹的面向对象语言。 但原始类型使Java更有效。

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

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

以上概念称为自动装箱

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

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

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

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

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

  1. Java支持原始数据类型。
  2. Java supoort static和这些属于类不对象。
  3. java支持枚举。

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM