Reflecting and counting points on a 2D grid
Instead of initializing your arrayList when you create the instance of the class, do it when you have the num_of_points value from the scanner.

arrayList = new ArrayList&lt;Point&gt;(num_of_points);


This will mean the array list doesn't need to resize itself (potentially slow operation). In the example you have given with only 4 points it won't make any difference, but if there were a larger number of points you may save some time!

Where you get the value from the scanner char c you trim the value, which you shouldn't need to do as the Scanner should stop when it sees a delimiter (in this case, a space).

In the queryC method, you have a for loop...

for (int b = 0; b &lt; len; b++) {
    pnt = arrayList.get(b);
}


...that does nothing, so you can remove it.

A few notes on code style...


In the main method your for loops go from X down to 0, but in the query methods you go from 0 up to X. Just wondering why?
You also use (0 - pnt.x) where you could use -pnt.x.


Hope this helps.