首页 > 解决方案 > 在 java 和 python 中创建对象时会发生什么

问题描述

我最近在 Java 之后开始学习 Python。

我了解到,在首先创建对象时,必须创建原始或未初始化的对象,然后必须初始化该对象。

我得出结论,首先__new()__创建原始对象,然后我们需要__init()__一个self参数来初始化原始对象。

所以我的第一个问题是在 Java 中创建对象时是否会发生相同的过程。

第二个是和 Python 一样,Java 编译器是否也在它的方法中添加了一个自动参数来支持this. 如下:

class Test

    public Test(Test this){}

    public int method(Test this,int i){

        return i;

    }

标签: javapython

解决方案


这是 Java 中引用当前对象的“引用变量”。编译器在对象内部处理 this 的使用。例如,当您创建如下类时:

public class Coordinates
{ 
    private int x; 
    private int y; 

    Coordinates(int x, int y) 
    { 
        this.x= x; 
        this.y = y; 
    } 

    void showCurrentLocation() 
    { 
        System.out.println("The coordinates are: x = " + x + "  y = " + y); 
    } 

    public static void main(String[] args) 
    { 
        Coordinates coordinates = new Coordinates(11, 2); 
        coordinates.showCurrentLocation(); 
    } 
} 

this.x 将引用对象的属性 x,而另一个 x 将引用输入参数。在 Java 和 C++ 中,编译器还在它的方法中添加了一个自动参数来支持你所要求的这一点。

为了观察自己,我建议你在 Eclipse 或 IntelliJ Idea 中使用调试器,你会看到这个,你会看到它保存了哪些变量的值。


推荐阅读