我正在编写在坐标系上运行的程序,所以我需要经常使用坐标。我决定使用Point
类,因为它显然可以轻松存储点的坐标。
我的程序中的问题无处不在,我将其存储为for path, dirs, files in os.walk(start_path):
full_path = os.path.abspath(os.path.realpath(path)) # just to cover symlinks
of.write("{} {}\n".format(full_path, os.path.getsize(full_path))) # not a real size!
for file in files:
file_path = os.path.join(full_path, file) # get the file path
size = os.stat(file_path).st_size # get the actual file stats
of.write(" {} {}\n".format(file_path, size)) # write the file path and size
total_size += size
,而int
在使用Point
和getX()
方法时返回double。当然,我可以轻松地将其转换为getY()
,但它看起来并不优雅,并且会给代码增加不必要的混乱。
如果我直接得到这个值,可以吗?像这样:
int
而不是:
Point p = new Point(0, 0);
int x = p.x;
我甚至不确定它是否有任何区别,我只知道吸气剂和制定者是有原因的,应该使用。
答案 0 :(得分:3)
我正在编写在坐标系上运行的程序,所以我需要 经常使用坐标。我决定使用Point类,因为它 显然可以轻松存储点的坐标。
和
我的程序中的问题无处不在,我把它存储为int而不是 使用getX()和getY()方法时,Point返回double。
您确定它显然可以轻松存储您域名的点坐标吗?
我不认为。
如果您需要操作一些Class B {
public void fetchA() {
A classA = new A();
int a = classA.getA();
}
}
实例,则使用java.awt.Point
类是有意义的。
这门课似乎不适合你的需要。
java.awt.Point
:您应该在编写时创建并使用自己的java.awt.Point
类,该类返回Point
值:
int
int x = p.getX();
执行某些任务:在自定义java.awt.Point
课程中,添加一个方法以返回Point
个实例。
答案 1 :(得分:1)
答案 2 :(得分:1)
您已关联Point
的相关文档。所以仔细阅读并考虑你的问题,而不是开始编码和思考,首先想到一个想法。然后了解java.awt.point
班级最适合您的情况。
如果它不适合您的情况,您可以实现一个类。否则,请遵循文档。遵循文档和OOP概念是一种很好的做法。
Point p = new Point(0, 0);
如果您已按照文档进行操作,则会看到如下:
Point()
: 构造并初始化一个点的原点(0,0) 坐标空间。
我认为你对此并不清楚。然而,
Point p = new Point();
int x = p.x;
这不是问题,因为x
是public
及其程序。但为什么他们实施了这个:
getX();
另请阅读这些内容 - getters and setters,implementation of Point class。
答案 3 :(得分:0)
让,你有2个班级。这些是:Class A
& Class B
在A类中,您有一个私有实例变量。
A类:
Class A {
private int a;
public int getA() {
return A;
}
}
现在,您要从a
访问名为Class A
的{{1}}变量。但变量是私有的。所以,现在我们需要getter方法,因为getter方法是公共的。
B类:
Class B
在这种情况下,我们需要getter方法。