#Cria classe Container
Class Container
Container instproc init {args} {
	$self set volume 0;	#Cria classe container e seta valores default
	$self set peso 0
	$self set cor {}
	eval $self next $args
}

#Metodo para ver correspondente em nome para a cor numerica
Container instproc verCor {} {
	$self instvar cor;	#cria variavel local cor, que tem o mesmo valor da instance variable cor (da classe)
	set cores {}
	foreach i $cor {
		switch $i {
			0 {lappend cores "Amarelo"}
				 	#ou set cores "$cores Amarelo"
			1 {lappend cores "Azul"}
			2 {lappend cores "Ocre"}
			3 {lappend cores "Laranja"}
			4 {lappend cores "Pink"}
			default {lappend cores "Ferrugem"}
		}
	}
	return $cores 
}

#Cria outros metodos
Container instproc setVolume {v} {
	$self set volume $v
}
Container instproc setPeso {p} {
	$self set peso $p
}
Container instproc setCor {c} {
	$self instvar cor
	set cor [concat $cor $c]
}

Container tanque1;	#cria objeto tanque1 da classe Container
tanque1 set volume 1000;	#seta atributos
tanque1 set peso 400
tanque1 set cor 4

puts "Instancias de Container: [Container info instances]"
puts " Variaveis:"
puts [tanque1 info vars];	#chama metodo para listar atributos do objeto tanque1
puts [tanque1 set volume];	#mostra valor dos atributos
puts [tanque1 set peso]
puts [tanque1 set cor]

puts "  Cor do tanque eh: [tanque1 verCor]";		#chama metodo verCor

Container tanque2 -setVolume 5000 -setPeso 500 -setCor 2 -setCor 3 -setCor 1 -setCor 0

puts "\n\nInstancias de Container: [Container info instances]"
puts " Variaveis:"
puts [tanque2 info vars];	#chama metodo para listar atributos do objeto tanque1
puts [tanque2 set volume];	#mostra valor dos atributos
puts [tanque2 set peso]
puts [tanque2 set cor]

puts "  Cor do tanque eh: [tanque2 verCor]";			#chama metodo verCor

puts "\nA Soma dos Volumes eh: [expr [tanque1 set volume] + [tanque2 set volume]]"










