What is … and :?

Reading Maeder’s The Mathematica Programmer and in section 4.6 I am interested in the following line:

Class[ class_Symbol, superclass_?ClassQ, variables : {_Symbol...},    methods : {{_Symbol, _Function}...} | {} ] := 

What do the colons after variables and methods mean? Also what does the … mean after _Symbol and after the list {_Symbol, _Function}?

My guess is that … means any number of the given type, in this case symbols and lists of symbols and functions, respectively. My guess for : is that variables and methods must be of the form that follows the colon.