Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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 如何使用正确的OOP实现这一点?_Java_Oop - Fatal编程技术网

Java 如何使用正确的OOP实现这一点?

Java 如何使用正确的OOP实现这一点?,java,oop,Java,Oop,我扩展了一个JPanel,将其用作绘图画布 在Handler类(画布的处理程序)中,我有以下代码:- public void mouseDragged(MouseEvent e) { endingPoint = e.getPoint(); repaint(); } public void mousePressed(MouseEvent e) { startingPoint = e.getPoint();

我扩展了一个JPanel,将其用作绘图画布

在Handler类(画布的处理程序)中,我有以下代码:-

    public void mouseDragged(MouseEvent e) 
    {
        endingPoint = e.getPoint();
        repaint();

    }

    public void mousePressed(MouseEvent e)
    {
        startingPoint = e.getPoint();
    }
在canvas类本身中,我有如下内容(MainFrame是一个扩展JFrame的类,其内部类为Handler):-

但是我在某个地方读到,我应该声明一个类的所有变量都是私有的,所有关于变量的工作都应该使用同一个类中的方法来完成。
但是我不能在这里这样做,我怎么能?

在您的
大型机
类中,您可以有一个方法
getStartingPoint
,该方法返回
startingPoint
的副本。对于
paintingShape
变量也一样:用
getPaintingShape
方法替换公共访问

本质上,每当有公共字段时,考虑用get /set方法和私有访问来替换它。它使您的代码在将来更易于维护

    if (MainFrame.paintingShape.equalsIgnoreCase("line"))
    {
        g.drawLine(MainFrame.startingPoint.x, MainFrame.startingPoint.y, ..., ...);
    }