Changes between Version 11 and Version 12 of TolOop
- Timestamp:
- Dec 12, 2009, 4:06:42 PM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TolOop
v11 v12 123 123 //Si no se quiere cambiar nada con herencia múltiple se enumeran las clases 124 124 //antecesoras 125 Class @VectorDoc: Vector,Doc;125 Class @VectorDoc: @Vector, @Doc; 126 126 127 127 //Con herencia simple no tiene mucho sentido no cambiar nada … … 191 191 Class @ClHeight; 192 192 193 //This class uses ClHeight as a method argument193 //This class uses @ClHeight as a method argument 194 194 Class @ClAge 195 195 { … … 202 202 }; 203 203 204 //This class uses ClAge as a method argument204 //This class uses @ClAge as a method argument 205 205 Class @ClHeight 206 206 { … … 236 236 237 237 === Constructores de instancias === 238 La forma más recomendada de crear instancias de forma regulada es mediante construtores que son métodos estáticos que devuelven una instancia de esa clase 239 240 {{{ 241 Class @Sphere 242 { 238 La forma más recomendada de crear instancias de forma regulada es mediante construtores que son métodos estáticos que devuelven una instancia de esa clase a partir de una lista de los argumentos necesarios para la definición del objeto. Los mimebros auxiliares o derivados serán rellenados por el propio constructor. 239 240 Evidentemente una misma clase puede tener varios constructores y unos pueden ser especializaciones de otros más generales a los que llamen después de calcular los argumentos necesarios 241 242 {{{ 243 Class @Circle 244 { 245 //Definition members 246 Real _.center.x_; 247 Real _.center.y_; 243 248 Real _.radius; 244 Real equalName(ClAge arg) 245 { 246 _.name==arg::_.name 249 250 //Auxiliar members 251 Real _.perimeter; 252 Real _.area; 253 254 //Basic Constructor 255 Static @Circle New( 256 Real x, //First coordinate of center 257 Real y, //Second coordinate of center 258 Real r) //Radius 259 { 260 @Circle new = 261 [[ 262 Real _.center.x_ = x; 263 Real _.center.y_ = y; 264 Real _.radius = r; 265 //Auxiliuar members definition 266 Real _.perimeter = 2*Pi*r; 267 Real _.area = Pi*r^2 268 ]] 247 269 }; 248 Static @ClHeight(Text name, Real height) 249 { 250 @ClHeight new = 251 [[ 252 Text _.name; 253 Real _.height; 254 ]] 255 } 256 }; 270 //Derivate constructor 271 Static @Circle Random( 272 Real min.x, Real max.x, 273 Real min.y, Real max.y, 274 Real min.r, Real max.r,) 275 { 276 @Circle::New(Rand(min.x,max.x), 277 Rand(min.y,max.y), 278 Rand(min.r,max.r)) 279 }; 280 281 //Returns true if the point (x,y) is inside the circle 282 Real includes(Real x, Real y) 283 { 284 (x-_.center.x)^2+(y-_.center.y)^2<=_.radius^2 285 } 286 287 }; 288 289 @Circle c1 = @Circle::New(0,0,1); 290 @Circle c2 = @Circle::Random(0,1,-1,0,1/2,1); 291 257 292 }}} 258 293
