The out variable is an implicit variable created from the
JSP and used in the _jspService method of the
servlet that is created from the JSP. Anthing that you put with scriplet tags in a JSP is directly put into the _jspService method so if you use out in a scriptlet it is ok because out is declared and defined within the _jspService method. A declaration on the other hand is inserted into the servlet outside of the service method, so if you use out in a declaration then there is no out variable to be used. That is the whole purpose of the declarations so that you can add methods and variables to the JSP that are not included implicitly.
Your declaring amethod in the declaration andit is just like a normal method in any other class it has to have access to the variable before it can be used. since you didn't declare it in the mehtod itself then out must be an instance or static variable. When in fact out is a local variable to the _jspService method.
Check out the .java file from the servlet generated from your jsp and
you should be able to see this.
hope that helps