rafa <
thefull_quita@t-gtk.org> wrote:
>Duilio escribió:
>> Hola jose muchas pero muchas gracias , vos sabes que he leido algo de
lo que
>> vos mencionas , digo lo he leido anteriormente pero por ahi todavia me
cuesta
>> lo que pasa es que estoy un poco perdido porque antes trabajaba en java
y
>> de golpe me dieron para mudar un programa hecho en clipper (q yo nunca
lo
>> habia visto) y que eligiera una herramienta para hacer visual el programa
>> en clipper.
>
>Ohh... y yo que estoy loco por empezar con Java....
>¿ Como es posible cambiar de Java a xBase ?
>
>No es tan complicado hacer una equivalencia entre como funciona Java y
>Harbour ( o variante de Xailer )
>
>Resumiendo, muy resumido;
>
>public class JEjemplo extends JHerencia {
> public static int s_variable_de_clase
> private String cadenaText = "cadena"
> public void JEjemplo(){
> // El constructor
> }
>}
>
>En Harbour, es mucho más flexible, porque no se comprueba tipos y valore
>s de retorno.
>
>CLASS JEjemplo FROM JHerencia
> CLASSDATA s_variable_de_clase
> DATA cadenaText INIT "cadena"
> METHOD JEjemplo() CONSTRUCTOR
>ENDCLASS
>
>METHOD Jejemplo() CLASS JEjemplo
> // Cualquier cosa puede ser constructor, siempre que devuelvas Self.
>RETURN Self
>
>Además, en Harbour no existe el concepto de methods estáticos , que yo
>sepa, la simple llamada a la clase, aunque no sea el constructor, hace
>que se cree una instancia, por lo tanto cosas en Java como;
>
>public void static MiSuma( int i, int x ){
>
>}
>
>Esto no existe un equivalente para Harbour, bueno, si, seria una simple
>función, function MiSuma(int i,int x )
>
>Además, Xailer incorpora el tema de las propertys que son más o menos,
>como los set/get de Java, pero mucho más flexibles.
>
>Además, Harbour te permite la herencia múltiple, como que java lo
>'seudo-implementa' con las interfaces.
>public class ejemplo extends miotra implements JInter{}
>
>En harbour
>CLASS ejemplo FROM miotra,JInter
>ENDCLASS
>
>Una cosa, en Java usas this.Mivariable, en Harbour, se cambia this por
>Self, y el . por los :, además, se usa más los ::
>Java;
>public void ejemplo(){
>this.unaVariable = "5"
>//es lo mismo que poner directamente;
>unaVariable = "5"
>}
>Porque implicitamente, para Java, la variable es una variable de
>instancia, siempre y cuando no existe una variable local del mismo nombre.
>
>Harbour;
>method ejemplo() CLASS Jejemplo
> self:unaVariable := "5"
> ::unaVariable := "5"
> // OJO QUE ESTO NO FUNCIONA
> unaVariable := "5" // Lo TOMARA COMO UNA VARIABLE DE MEMORIA, osease,
>LOCAL
>RETURN nil
>
>
>El ámbito de acceso y todos los demás, lo dejamos para otro día.
>
>Saludos
>Rafa Carmona
>
>
>
>
>
Hola Rafa :un millon de gracias por tu ayuda aunque seguramente y lamentablemente
quiza tenga que consultarte algunas cosas mas durante mi traumatico cambio
:) que no es culpa de xailer si no de mi que me acostumbre a usar lenguajes
fuertemente tipados, y principalmente con un ide de edicion y un debbuger
mucho mas complejo. No soy experto en java ni nada de eso pero esta fueron
las dos cosas q mas me costaron, ya que por ejemplo eclipse t controla y
t marca muchisimos errores bobos que aca en xailer recien saltan en tiempo
de copilacion, ademas de proveerte mucha ayuda como ser si yo tecleo miclase.
ya me muestra las propiedades y los metodos de clase que estan habilitados
para esa clase. Ni hablar q lo que mas me costo es aceptar que una variable
no tenia tipo y que el mismo recien t enterabas cuando le asignabas algun
valor. Pero bueno t comento lo que me pasa a mi que como dije no soy un experto
en java y tampoco un programador nato.
Bueno igualmente si hay algo en lo que t pueda ayudar estoy por aqui o directamente
por mi email
duiliobacalor@gmail.com
Muchas gracias otra ves
Duilio