Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.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_Android_Explicit - Fatal编程技术网

Java “与”的区别是什么;明确地说;及;含蓄地;在编程语言中?

Java “与”的区别是什么;明确地说;及;含蓄地;在编程语言中?,java,android,explicit,Java,Android,Explicit,我想对两者之间的区别有一个清晰而准确的理解 这个关键字是用来隐式引用还是显式引用?这也是为什么我想澄清两者之间的关系 我假设使用this关键字是隐式引用(是类中的某个对象),而显式引用(不是类本身的某个对象),比如将参数变量传递到方法中 当然,我的假设显然可能是错误的,这就是为什么我在这里要求澄清 程序员所做的显式操作。 隐式意味着由JVM或工具完成,而不是由程序员完成 例如: Java将隐式地为我们提供默认构造函数。即使程序员没有为构造函数编写代码,他也可以调用默认构造函数 显式与此相反,即程

我想对两者之间的区别有一个清晰而准确的理解

这个
关键字是用来隐式引用还是显式引用?这也是为什么我想澄清两者之间的关系

我假设使用
this
关键字是隐式引用(是类中的某个对象),而显式引用(不是类本身的某个对象),比如将参数变量传递到方法中


当然,我的假设显然可能是错误的,这就是为什么我在这里要求澄清

程序员所做的显式操作。 隐式意味着由JVM或工具完成,而不是由程序员完成

例如: Java将隐式地为我们提供默认构造函数。即使程序员没有为构造函数编写代码,他也可以调用默认构造函数

显式与此相反,即程序员必须编写。

1:隐式转换(加宽转换)

较小的数据类型(占用较少的内存)分配给较大的数据类型。这是由JVM隐式完成的。较低的尺寸被扩大到较高的尺寸。这也称为自动类型转换

示例:

    int x = 10;                    // occupies 4 bytes
    double y = x;                  // occupies 8 bytes
    System.out.println(y);         // prints 10.0
在上述代码中,4字节的整数值被分配给8字节的双倍值

  • 显式转换(缩小转换)
  • 无法将较大的数据类型(占用更多内存)分配给较小的数据类型。这不是由JVM隐式完成的,需要显式强制转换;由程序员执行的一种转换操作。较大的尺寸缩小为较小的尺寸

       double x = 10.5;             // 8 bytes
       int y = x;                   // 4 bytes ;  raises compilation error
    
    一, 2. 双x=10.5;//8字节 int y=x;//4字节;引发编译错误 在上面的代码中,8字节的双精度值被缩小为4字节的int值。这会引起错误。让我们显式地输入cast

       double x = 10.5;                  
       int y = (int) x; 
    
    一, 2. 双x=10.5
    int y=(int)x;
    双精度x显式转换为int y。经验法则是,双方都应该存在相同的数据类型。

    我将尝试提供一个跨不同编程语言的类似功能示例,以区分隐式和显式

    隐式:当某些东西作为所用编程语言结构的一个特性/方面可用时。您只需通过API/接口直接调用相应的功能

    例如,java中的垃圾收集是隐式进行的。JVM在适当的时候为我们做这件事

    显式:当需要用户/程序员干预以调用特定功能时,如果没有该功能,所需的操作将不会发生

    例如,在C++中,释放内存(读:垃圾收集版本)必须通过显式调用删除和自由运算符来实现。p> 希望这有助于您清楚地理解差异。

    您已经得到了答案,但我想补充几点

    隐式:它已经可以用于编程语言,如方法、类、数据类型等

    -隐式代码解决了程序员的困难,节省了开发时间

    -它提供了优化的代码。等等

    显式:由程序员(您)根据他们(您)的要求创建,如应用程序类、getName()和setName()等方法

    最后,简单地说,
    一种预定义的代码,为程序员构建应用程序、程序等提供帮助。它被称为隐式,由(您)程序员编写,以完全满足要求。它被称为显式

    “显式”和“隐式”只是文字,而不是编程术语。如果你想在特定的上下文中理解它们,你必须带上具体的例子。这两个词可能是形容词,它们可能会根据你的使用方式产生不同的含义。如果你在程序中使用单词
    this
    ,例如
    this.foo=2,您正在显式使用它。如果您省略了它,但编译器将其视为使用了
    this
    ,例如
    foo=2
    如果
    foo
    是类中的一个实例变量,则隐式使用
    this
    。请考虑单词的词典定义。明确的意思是你陈述某事而不遗漏任何细节,这对于防止歧义是必要的。隐式意味着一些细节没有说明,但可以在没有说明的情况下确定,因为有足够的信息可用。在编程中,这些词最常见的用法是描述如何声明变量。在Python中,您不声明类型,但类型由您指定的值隐含。至于“这”,它是明确的,因为它是潜在的不必要的信息,以防止含糊不清。