Java 将参数设置为全局变量是否是一种好的做法?
我是一名AP java学生,在从事一个项目时,我想知道使用一个全局变量作为参数是否是一种好的做法。如果你想知道为什么我想把它做好,这样我就不必这么做了:Java 将参数设置为全局变量是否是一种好的做法?,java,parameters,global-variables,global,Java,Parameters,Global Variables,Global,我是一名AP java学生,在从事一个项目时,我想知道使用一个全局变量作为参数是否是一种好的做法。如果你想知道为什么我想把它做好,这样我就不必这么做了: public class Circle { private DrawingTool pen; private SketchPad paper; private double myX; private double myY; private double myWidth; private double myHeight; public Cir
public class Circle {
private DrawingTool pen;
private SketchPad paper;
private double myX;
private double myY;
private double myWidth;
private double myHeight;
public Circle(double x, double y, double width, double height){
paper = new SketchPad(500,500);
pen = new DrawingTool(paper);
x = myX; //I don't want to have to assign this every time
y = myY; //like here
width = myWidth; // and here
height = myHeight; // and here
}
}
是否允许仅执行以下操作:
public Circle(double myX, double myY, double myWidth, double myHeight){
paper = new SketchPad(500,500);
pen = new DrawingTool(paper);
}
}
每次我把参数传递给参数时,它们会自动分配给全局变量吗
每次我把参数传递给参数时,它们会自动分配给全局变量吗
不,Java中没有任何东西可以使“参数到实例变量”(不是真正的“全局”)赋值自动进行。许多IDE都能够为您生成代码,但它确实需要存在。对象将其状态存储在字段(某些编程语言中的变量)中,并通过方法(某些编程语言中的函数)公开其行为。方法对对象的内部状态进行操作,并作为对象到对象通信的主要机制。隐藏内部状态并要求通过对象的方法执行所有交互称为数据封装,这是面向对象编程的基本原则
来源:这些不是全局变量,而是实例变量。从常识的角度来看,这似乎不好:每个圆形对象都有自己的画板和绘图工具?如果你想在画板上有更多的圆圈怎么办?@ppeterka66但我认为,因为它们可以通过任何作用域访问,所以它们可以被称为“全局”,而
是私有的
它们只能在包含类中访问。不,它们不能在任何作用域中访问:不能从类中的静态作用域访问,并且没有来自类之外的作用域(除非您有public/protected/package-protected getter方法)。另外,有一件事需要提及:它们不是静态的,因此对象实例是生死攸关的……不,将方法参数命名为实例变量不会自动将它们与实例变量联系起来。相反,这将有效地将实例变量隐藏在方法中,您只需处理形式参数。