Functions and/or methods.

BlitzMax Forums/BlitzMax Beginners Area/Functions and/or methods.

What are the pros/cons of doing each of the following :
Type ttest 
	Field x:Int=5
	Function set_xval1(temp:ttest, xval:Int)
		temp.x = xval
		Print temp.x
	End Function
	Function set_xval2(temp:ttest , xval:Int)
		temp.set_x(xval)
	End Function
	Method set_x(xval:Int)
		x = xval
		Print x
	End Method
End Type
Local test:ttest = New ttest
'test1
ttest.set_xval1(test , 1)
'test2
ttest.set_xval2(test , 2)
'test3
test.set_x(3)

or any other way for doing the same sort of thing?
I'm currently using 'test2' (to fit in with Bmax way of doing things) but find myself writing huge amounts of code.