java - 在 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;
}
解决方案
这是 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 中使用调试器,你会看到这个,你会看到它保存了哪些变量的值。
推荐阅读
- amazon-web-services - 将特定 AWS API Gateway 阶段连接到 CloudFormation 模板中的特定 Lambda 别名
- python - 如何从“SMI”打开使用“i view X”系统创建的 *.idf 眼动仪数据
- android - Android房间数据库删除不起作用?
- php - 树枝渲染 - 一次安装速度过慢
- c++ - OpenGL,GLUT,GLEW - 窗口总是空白的白色
- imagemagick - ImageMagick - 我如何计算磁盘缓存和内存使用量?
- modelica - 更改目录时无法导入pyjmi模块
- django - 不同 docker 容器之间的 Django 通道
- vba - VBA日期清理
- unix - 使用来自 sed 的输出