Un error en mi curso de POO

Estoy cursando la materia POO en el tecnológico donde estudio y me encontre con el material de inicio y encontre algo que me confundio.
Miren esta imagen y diganme si es correcto el contenido de la imagen por que en los libros no viene así.

Estan usando moodle, peor si el contenido esta mal creo que confundiran a los alumnos.

AdjuntoTamaño
eror404.png34.71 KB

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

lenguaje?

Qué lenguaje es ese? porque no es Java. Podría ser correcto, por el new carro(). Aunque creo que la manera de presentarlo está muy mal.

Cuando he dado capacitación de OOP lo explico así: Una clase es la definición de cómo deben ser los objetos de cierto tipo, y una instancia de un objeto ya es una copia concreta de un objeto de ese tipo. En el mundo real, podemos decir que "Persona" es una clase: es algo abstracto, mientras que "Juan Pérez" es una instancia de Persona, muy distinta de "Pedro Pérez" que es otra instancia.

Imagen de CybJer

Bueno a primera vista se ve

Bueno a primera vista se ve mal, pero a mi parecer es correcto aunque si fuera un lenguaje real seria muy incomodo de usar, va en contra del camelcase (aunque para ese lenguaje puede ser adecuado) y bueno yo no me referiria a una clase como un "Tipo de dato" talves como un "Tipo de objeto" pero naa creo que es mas significativo referise como Clase. Ni a mis instancias de objeto como variables.
Podria justificarse (y no es que se deba) con el hecho que la presentacion este diseñada para personas que solo han programado estructuradamente, para que les sea mas facil de digerir.

Yo si me confundi

Por que todos los recursos son de java de Deitel and Deitel y pone esa diapositiva y me confundio, pense que era Java.

Imagen de ezamudio

Scala

Esa sintaxis de definir nombre:Tipo es de Scala, pero falta ponerle antes val o var en la declaración (aunque muy probablemente no es importante en ese contexto).

Pues depende del planeta del

Pues depende del planeta del que vengas puede ser correcto.

Esa declaración sería un pseudo-código probablemente de alguién que usaba C# ( variable en Uppercase , tipo de dato en lower ) o alguno similar, pero en la mayoría de los lenguajes estas son convenciones y no reglas, es decir, se "ve" mal, pero el compilador lo aprueba.

Sin embargo, en UML por ejemplo, esa sería una forma correcta de poner un atributo

variable : tipoDato = valorInicial

Así que no es incorrecto pero si vienes del mundo Java se ve muy raro ejemplo:

// legal pero se ve raro
public class carro  
{
   carro MiCarro = new carro();
}

Yiack!

Imagen de ezamudio

C#

mmmmm a menos que hayan cambiado las convenciones, no es como dices Oscar... en C# las clases, métodos, propiedades y namespaces comienzan con mayúscula; los nombres de variables locales y parámetros comienzan con minúscula.

Tal vez estés pensando en string, que es una palabra reserva en C# para hacer referencia a la clase System.String, igual hay otros (int, long, decimal, etc) pero en general las variables van en minúscula y los tipos en mayúscula.

Aja.. esa.. object, int,

Aja.. esa.. object, int, string. Ya ví, lo que es común en mayúsculas es el nombre del método. Bueno entonces cae en la categoría "alguno smilar" :)

Dependiendo el lenguaje

Cómo ya te comentó @ezamudio, es muy importante saber el lenguaje, eso parece Java pero no lo es. La manera de hacerlo en Java sería:
Carro miCarro = new Carro();, y la explicación sería [Clase] [nombre] = new [Clase](). Hay que recordar que cuando creamos objetos no hablamos de tipos de datos, sino de clases (que de cierta manera se confunden al principio con los tipos abstractos de datos). Y tampoco usamos variables, usamos objetos los cuales pueden ser mutables e inmutables; ¿porqué tiene tanta importancia esto? pues porqué si no lo comprendemos del todo bien no podemos hacer uso de recursos (libros) más avanzados que para entenderlos necesitas manejar bien la POO y sus conceptos.

Imagen de CybJer

En un curso de POO, lo unico

En un curso de POO, lo unico realmente importante es que se comprenda el paradigma (El lenguaje con que se ejemplifique es solo un recurso).
Si no se comprende el paradigma pese a que se programe Java, se entendera todo como variables tipos de dato y funciones.
Asi el desarrollo no se beneficiaria de las ventajas del paradigma, por eso considero que si eso es pseudocodigo o ScjavaC # da lo mismo, lo importante es el proposito por el que se ejemplifico de esa manera.

Re: En un curso de POO, lo unico

Depende el profesor y los alumnos. Por mi parte no comprendí del todo bien hasta que nos pusieron frente a una compu a programar, haciendo ejercicios básicos (el del supermercado, el banco, etc), ya qué pues la teoría es necesaria y muy bonita pero es necesario complementarla con la práctica; a mi me ha pasado que no comprendo algo hasta que lo hago.

En fin, son de las cosas que cada quien sabe cómo hacerlo; ya es cuestión del profesor y el alumno de ver si es necesario llevar esa práctica a un lenguaje o si el alumno simplemente capta a la primera y basta con la teoría.

Imagen de CybJer

Comprendo perfectamente tu

Comprendo perfectamente tu punto @wishmaster77, es necesario tener las dos partes de la naranja (teoria y practica) para hacer un trabajo (jamas demerite la importancia de la practica), pero la POO es solo un paradigma y si nos vamos al sentido mas purista (como suele ser aqui en el foro) el hablar del tema no te obliga a aterrizarlo en la practica, lo que vuelve al lenguaje un recurso para ejemplificar el como se usa el mismo en X lenguaje, pese a que el recurso pueda ser un vil pseudocodigo.
La teoria debe ser a priori a la practica.
O no se que opine @bferro el tiene mas experiencia acerca esto.

"En teoría, la teoría y la

"En teoría, la teoría y la práctica es lo mismo, en la práctica no lo son."

:)

La razón para sar puristas al

La razón para sar puristas al menos en la nomenclatura es meramente práctica je je je. Cuando se tiene un vocabulario en común, se puede entender al otro más fácilmente y sin ambigüedad. Cuando se habla por mencionar un post reciente de "seleccionar una variable aleatoria" confunde mucho, pero cuando se dice "seleccionar una variable de forma aleatoria" ya cambia el concepto.

Pero sí, ambos son necesarios. Yo también soy de los que aprende mejor algún concepto de programación cuando escribo un programa que lo usa.

Imagen de CybJer

Mas que de nomenclatura en el

Mas que de nomenclatura en el ejemplo que pones considero que el error es de semantica auque eres tu quien esta haciendo un lenguaje y entiendes mejor que onda con esos conceptos

Je je je .. que chistoso se

Je je je .. que chistoso se oye.. ( ehem ehemm ) eehh siii... la semántica..

:")

Si te refieres al ejemplo de la imagen, sería un error de sintáxis si el lenguaje fuera Java, de semántica sería si eso no significara nada ( o era el revés ) .

Voy aprendiendo, voy aprendiendo.

Imagen de CybJer

Me referia a:"seleccionar

Me referia a:

"seleccionar una variable aleatoria"


"seleccionar una variable de forma aleatoria"


Considero que ahi el problema es semantico

ah si, ahi si.

ah si, ahi si.

Re: Comprendo perfectamente tu

Por lo mismo. Cómo para un alumno basta con explicarle la teoría para otros es necesario verlo en (pseudo)código. Ahí es donde entra la bronca esa del docente y que tanto busca que el alumno se adapte o que sea el docente quien se adapte. Ahora, en programación hablar del tema yo digo (esto ya es opinión personal) si te obliga a llevarlo a la práctica.

Ya creo que es cuestión de percepción.

Respecto a lo que dices de @bferro sería interesante leer su punto de vista, ya que cómo bien mencionas, tiene mucha experiencia en esto.