Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 他们用爪哇语说;每件事都是一个对象;。这是真的吗?_Java_Oop - Fatal编程技术网

Java 他们用爪哇语说;每件事都是一个对象;。这是真的吗?

Java 他们用爪哇语说;每件事都是一个对象;。这是真的吗?,java,oop,Java,Oop,我打字的时候 int a = 5; 是一个对象吗 有谁能向我解释一下在java中,每件事物是如何成为一个对象的吗?没有,这不是一个对象。java不是纯粹的面向对象语言,因为它是原语和静态的。为了使原语变量成为对象,java引入了包装器类,等等。它们是错误的。a不是对象。在java中,有基本类型(int、boolean、char、byte…),其他所有类型都扩展了对象类,因此是对象 但“一切都是对象”这一概念主要意味着不能在对象类之外编写代码。例如,您可以制作脚本文件,它必须包装在类中。这在ja

我打字的时候

int a = 5;
是一个对象吗


有谁能向我解释一下在java中,每件事物是如何成为一个对象的吗?

没有,这不是一个对象。java不是纯粹的面向对象语言,因为它是
原语和
静态的。为了使原语变量成为对象,java引入了包装器类,等等。

它们是错误的。a不是对象。

在java中,有基本类型(int、boolean、char、byte…),其他所有类型都扩展了
对象
类,因此是对象


但“一切都是对象”这一概念主要意味着不能在对象类之外编写代码。例如,您可以制作脚本文件,它必须包装在类中。

这在java中是而不是正确的。例如,
int
实际上是一个原语。在java中,一切都是一个
对象
,它扩展了
对象
。其他一切都是而不是

例如,您不能像操作对象那样操作名称空间(java术语中的包),但在Erlang或Clojure中您可以

尽管java提供了自动装箱功能,可以将原语转换为对象。在你的情况下,如果你说

Integer a = 5;
java将5放入
整数
引用中。如果您想阅读有关自动装箱的信息,请单击此处:。java中的对象:


如果您正在寻找一种一切在技术上都是对象的语言,您可以尝试使用CommonLisp。在Lisp中,即使是
T
(代表布尔值true)也是一个对象。

a
这里是一个原语。Java既有原语,也有对象。

我认为这源于Java经常被比作C的“早期”,以及它的结构性质。但是,该语句本身并不正确。

每个对象都是
java.lang.object
(注意:
java.lang.object
没有超类。)

然而,有许多东西不是对象

  • 原语和引用
  • 字段(字段本身而不是内容)
  • 局部变量和参数
  • 泛型类(在Java8中可能会更改)
  • 方法(将在Java8中更改)
  • 代码块(将在Java8中更改)

将代码块作为对象是Java8中最令人兴奋的特性之一。以下示例都是闭包,因此是对象

x => x + 1
(x) => x + 1
(int x) => x + 1
(int x, int y) => x + y
(x, y) => x + y
(x, y) => { System.out.printf("%d + %d = %d%n", x, y, x+y); }
() => { System.out.println("I am a Runnable"); }
e、 g.此处的代码块将作为
Runnable
对象传递


虽然
a
不是一个对象,而是一个原语类型的值,但是Java会尽力向您隐藏这一事实。从Java 5开始,这样您就可以将它们存储在容器中,将它们传递给需要对象的方法,等等。

Java中并非所有东西都是对象。有些值是基本类型的,举几个例子:
int
float
double
byte
char
。。。有很多方法可以将这些基本类型包装到对象中(Java也可以自动为您完成这项工作)


现在,我们可以更准确地说,“在java中,一切都是在一个对象中定义的”,以此强调在java中,你不能定义一个不是类或实例方法的函数或子函数,就像你在
C++
中所做的那样。

在java中,不是一切都是对象。还可以在对象中使用以下基本类型(定义取自:

  • 字节:字节数据类型是一个8位有符号2的补码整数。 它的最小值为-128,最大值为127(含)。 字节数据类型可用于在大型阵列中节省内存, 内存节省实际上很重要。它们也可以用于 int的位置,其限制有助于澄清代码;事实 变量的范围是有限的,这可以作为 文件

  • short:short数据类型是一个16位有符号2的补码 整数。它的最小值为-32768,最大值为 与byte一样,同样的准则也适用:您可以 在出现以下情况时,请使用短消息在大型阵列中节省内存: 节省内存实际上很重要

  • int:int数据类型是一个32位有符号2的补码整数。它 最小值为-2147483648,最大值为 2147483647(含)。对于整数值,此数据类型为 通常默认选择,除非有原因(如上所述) 选择其他内容。此数据类型很可能很大 足够你的程序使用的数字,但如果你需要更广泛的 值的范围,请改用long

  • long:long数据类型是一个64位有符号2的补码整数。 它的最小值为-9223372036854775808,最大值为 值为9223372036854775807(包括)。请使用此数据类型 当您需要比int提供的值更宽的值范围时

  • 浮点:浮点数据类型为单精度32位IEEE 754 浮点。其值的范围超出了本规范的范围 讨论,但在浮点类型、格式和 Java语言规范的值部分 对于字节和短字符,建议在以下情况下使用浮点(而不是双精度) 您需要将内存保存在大型浮点数数组中。 此数据类型不应用于精确值,例如 为此,您需要使用java.math.BigDecimal 数字和字符串包括BigDecimal和其他有用的 Java平台提供的类

  • double:double数据类型是双精度64位IEEE 754 浮点数,它的范围
    new Thread(() => { System.out.println("I am a Runnable"); }).start();