No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Clases en UML y su sintaxis en código

13/37
Recursos

Aportes 289

Preguntas 29

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

En javascript también podemos crear una clase de esta manera

class Person {
  constructor() {
    this.name = '';
  }
  walk() {...}
}

En python después de name=’’ no es necesario colocar punto y coma (’;’).

Clases en UML y su sintaxis en código
.
Recuerda que el proceso es:
• Identificar el problema, y objetos
• Definir las clases
• Plasmarlas en un diagrama
Se lo puede plasmar en UML :
Identidad, que será el nombre de la clase.
Estado, que serán los atributos de la clase.
Comportamiento, que serán las operaciones de la clase.
.

Un pequeño aporte de un ejemplo en UML

La informacion sobre JavaScript esta desactualizada. JS tiene soporte completo de OOP desde que se actualizo a ECMAScript 6 en el 2015.
Clases en JS: Classes - JavaScript | MDN

Perdón profe pero no quiso decir que la palabra reservada es “class” y no “Person” en el min 2:10?

ACTUALIZACION: 01-2021

  • definir una clase en JS:
class Rectangulo {
  constructor(alto, ancho) {
    this.alto = alto;
    this.ancho = ancho;
  }
}
La palabra reservada para ello es Class

La profe menciona las llaves como “brackets”, asi que corrijo:

  • { } llaves ( curly braces ó braces)

  • [ ] corchetes ( brackets ó square brackets)

  • ( ) paréntesis (parentheses)

A partir del estándar ES6, en javascript permite el uso de class, para definir las clases y trabajar la programación orientada a objetos, pero class no es más que azúcar sintáctica de los prototipos, lo que quiere decir que lass clases en js solo son una manera más sencilla de trabajar con los objetos.

ref: https://javascript.info/class, https://dmitripavlutin.com/javascript-classes-complete-guide/

C# muy parecido a Java.

class Persona
{
	private string nombre;
	
	public void Caminar()
	{
		...
	}
}




Hay otra manera de hacer la declaracion en JavaScript

const Persona = function(){
  let name = "";
  this.walk = function(){
  }
}

💙 Definición de la clase en el lenguaje de programación Dart.

class Person {
  String name = ' ';
  void walk() {}
}

¿A que se refiere con que en JavaScript todo lo maneja a través de prototipos? o mejor dicho ¿que son los prototipos?

En python suele ser buena idea hacer esto:

class Person:
	name = ""
	def walk():
		pass

Poner ahí un pass para decirle de momento que ahí será el final. después puedes quitárselo y no volvérselo a poner

En versiones más recientes de Js ya podemos usar la palabra reservada class

En el 2:10 dice con la palabra reservada Person pero en realidad es class

Como pequeño aporte de mi parte noten que la clase “Person” comienza con mayúscula. Eso es una convención al momento de definir clases, la primera letra debe ser en mayúscula.

¿Palabra reservada Person?
Disculpen pero a este punto ya no es un error mínimo, ya son varias clases cometiendo errores mínimos al explicar conceptos y esto ya es preocupante, Platzi debería, por lo menos, haber corregido cada uno de los videos donde se han detectado errores, pero no lo han hecho.

Quizás los que ya conocemos el tema podamos tomarlo como un error mínimo pero para los que son nuevos esto puede ser muy grave ya que los confunde.

Errar es de humanos, todos nos podemos equivocar, pero no corregir el error y dejarlo suelto ya es irresponsabilidad por parte de Platzi.
Por favor corregir los videos rápidamente.

En el caso de Go sería

type Person struct{}

JavaScript:

class Person 
{
   constructor(name)
   {
   	 this.name = name;
    }

 walk()
 {
     whatever
  }
}

en PHP no es que en una declaración (sencilla) de propiedades y métodos se debe indicar el “public”? (mi estar confundido ahora) [POO]

Mis apuntes #13

las instrucciones en python no finalizan con ; (punto y coma)

  1. Identificar el problema.
  2. Identificar los objetos.
  3. Definir las clases.
  4. Plasmarlas en un diagrama.

Por alguna razón, pasa el tiempo y transcurre el video, pero para nada me aburro. Es muy agradable la forma en que Anahí enseña. ¿ Soy el único que se le va el tiempo y no te pesa?

Por si alguien esta interesado la sintaxis de una clase en C++ seria:

class Person{
 //atributo
string nombre;

//método

void caminar(){}

};

Typescript.

class Person {
    name : string;
    walk: () => {}
}

Hago un inciso en JavaScript ya se puede declarar una clase usando la palabra reservada class

JS ya tiene soporte OOP.
En JS si se puede definir como class Person {}

Muy buena clase, para aclarar JS ahora mismo ya tiene soporte para POO y la palabra reservada también es class.

Me gustaría decir que como buenas prácticas siempre es bueno colocar el nombre de las clases con la primera letra en mayúscula 😊

En el caso de Ruby seria:

class Person
  attr_accessor :name
  
  def initialize(name)
    @name = name
  end

  def walk
    puts "my name is #{@name} and I'm walking"
  end
end

Proceso:

  • Identificar problema
  • Identificar Objetos
  • Definir clases
  • Plasmarlas en un diagrama

Estructura de un diagrama de clase UML:
Nombre clase -> Identidad
Atributos -> Estado
Operaciones -> Comportamiento

Excelente explicación
La inferencia a partir de la versión 10 en java ha suavizado su lo de fuertemente tipado a la hora de definir variables.

Sé que JS no acepta ‘clases’ tal cual como otros lenguajes, sin embargo, existe el ‘Class’ y los metodos ‘constructor’ y ‘superconstructor’. Así como ‘extends’. ¿Saben por que ella utiliza la manera mas ‘antigua’?

RESUMEN CLASE 13:
CLASES EN UML Y SU
SINTAXIS EN CODIGO

I.- UML

Nombre Clase

Identidad

Atributo 1
Atributo 2
Atributo 3
Atributo n

Estado

Operación 1
Operación 2
Operación 3
Operación n

Comportamiento

Ejemplo:

Person
name
walk ()

II.- SITAXIS EN CODIGO

Java

class Person {}

Python

class Person:

JavaScript

function Person(){}

PHP

class Person {}

III.- DEFINIENDO ATRIBUTOS Y METODOS

Java

class Person {
String name = “”;
void walk() { }
}

Python

class Person:
name = “”;
def walk():

JavaScript

Person.prototype.walk = function (){
}

PHP

class Person {
$name = “”;
function walk() { }
}

se debería de actualizar la sintaxis de los ejemplos de acuerdo a las nuevas especificaciones de los lenguajes

Full JAVA, quien dijo yo

  • En los diagramas UML, cada clase tiene 3 casillas:
    • La primera tiene el nombre de la clase
    • La segunda tiene los atributos o estados de la clase
    • La tercera tiene las funciones o metodos de esta.

Clase en Java

class Person{
	String name = "";
	void walk(){}
}

Clase en Python

class Person: 
	name = ""
	def walk:

Clase en Javascript

function Person(){}
Person.prototype.walk = function(){}

Clase en PHP

class Person{
	$name = "";
	function walk(){}
} 

Al principio tiene un error la profe, entiendo dice “la palabra reservada Person” y se refiere a la palabra reservada “class”

En C++ las clases de declaran prácticamente igual que en Java

Qué suerte que el curso se manejara con lenguajes que manejo o al menos conozco en el caso de Java

Se presentó con un error, ya que en Python no se coloca el punto y coma en ningún momento

class Person:
	name = "Anahí"
	
	def walk():
		pass

Que veo 👀, un punto y coma en python XD

Perdón. Pero en Python el “;” despues de "name = “” " es un error. No va el mismo.

¿O estoy equivocado?

theres an error in 5:03:

Python does not use this symbol -> ;

She wrote:
name = “”;

But the right is:
name = “”

whithout the ; symbol

Para hablar de buenas practicas:
.
Debemos evitar escribir clases que estan cargadas con muchisimas propiedades y no tienen metodos.
.
Eso quiere decir que debemos seguir analizando el caso para lograr una mejor abstraccion:
.

para que tengan en cuenta ahora se puede hacer clases en JS de una forma mas legible, quizas por la fecha del curso aun no estaba disponible asi que traten de mirar las clases de JS dde la forma mas nueva

Información importante en el diseño de diagrama UML

  • Atributos

Modificadores de acceso
(-)private
(+)public

si el atributo tiene llaves [] quiere decir que es una variable de tipo objeto (Array)

si el atributo esta subrayado es de tipo static

si el atributo esta en MAYUS y subrayado es de tipo final static

  • Metodos

si queremos instanciar una variable de otra clase nombre_variable : NombreClase : void
por buenas practicas la variable lowerCamelCase or snake_case y la clase UperCamelCase
y tipo de retorno por ultimo

Información resumida de esta clase
#EstudiantesDePlatzi

  • Una clase en UML será representada por un rectángulo

  • Este rectángulo lo podemos dividir en 3 partes horizontalmente

  • en la parte superior ponemos el nombre de la clase

  • En el espacio de la mitad definimos los atributos y en la parte inferior definimos los comportamientos

  • Debemos definir nuestro objeto en código siguiendo la estructura

  • Para Java, Python y PHP definimos la clase con la palabra reservada class

  • JavaScript lo maneja de una manera diferente, ya que todo lo maneja a través de prototipos

  • En JavaScript utilizaremos la palabra reservada function

  • JavaScript es exigente con el tipado, en cambio, Python no tanto

  • Las llaves indican que viene un bloque de código

En python es importante que el codigo este indentado.

Desactualizado… en javascript ya tenemos clases.

jaja pesitos para php

Es bastante útil tener un procedimiento para analizar un objeto para después pasarlo a código.

Yo creo q los diagramas UML nunca van a pasar de moda, aun q se ve muy tradicional, es la mejor forma de plasmar tus ideas.

In ruby!

class Person
	attr_accessor :name

	def walk; end
end

En resumen tenemos una clase (la palabra “class” existen en los 4 lenguajes), los atributos son variables y los métodos son funciones.

Aunque la forma usada por la profesora respecto a JavaScript funciona y es más moderna por decirlo así ajajaja también se puede hacer con class como los otros lenguajes y definir dentro los atributos y métodos.

¿Qué significa “dinámicamente tipado”?

En python es realmente facil.

Una pequeña corrección del video: En JAVA la palabra reservada es CLASS y person es el nombre. Lo comento porque ella dice que la palabra reservada es person, y esta claro que es un pequeño desliz.

Falta C# T.T Y.Y

<?php
class Person
{
    // property declaration
    public $name = 'Julio';

    // method declaration
    public function walk() {
        echo "my name is $name and I'm walking";
    }
}
?>```

buu me confunde al decir lo de javascript

4 lenguajes que han avanzado mucho en el tiempo y son la potencia mundial en la cual se tiene dominio de ellos

Desde que estudié con Sacha los fundamentos de JavaScript me pareció un lenguaje medio rebelde pero divertido. Su ejemplo me lo recordó XD

¿Pero en JS no se declaran clases con la palabra reservada class?

class Persona
{

}```

Está bueno que nos muestren como funcionan los objetos en cada tipo de lenguage. Pero lo mejor para uno es aprender y manejar UML en un solo lenguage (en mi caso Java) y una vez dominado pasar a los otros.

En Python, la sangria o tabulacion me lo enseñaron con el nombre de Identado, son los espacios delante de las lineas de código para indicar que estan contenidos dentro de una funcion, un bucle, un condicional u otra estructura.
El identado es una buena practica de programacion en otros lenguajes también, para identificar más facilmente qué lineas de codigo están contenidas dentro de las estructuras mencionadas.

Y Cómo se define el atributo name para javascript?

exelente.

Python no usa el punto y coma ( ; ).

En JavaScript a partir de ES6 ya podemos escribir clases al igual que en otros lenguajes mencionados en esta clase, claro está que cambiaran algunas cosas, sin embargo sera un poco más fácil implementarlas.
.

class Person {}

.
Fuente: Clases - JavaScript | MDN

me parece que esta clase es algo vieja… desde hace algún timpo en JavaScript también se pueden declarar clases con la palabra reservada class.

https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Classes

Podríamos resumir todo este proceso como parte del Diseño de datos en Ingeniería de Software.

En python no se usa el punto y coma para definir las variables 😃

La sintaxis se me hizo más compleja en JavaScript

Ya se pueden utilizar clases en javascript, para echarle un vistazo y actualizarse un poco, podéis ver esta url:

https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Classes

en java la palabra reservada Class{}
en php la palabra reservada Class{}
en python la palabra reservada Class:
en javascript la palabra reservada function nombre(){}

ejemplo:

java
class Person{
string name ="";
void walk(){}
}

python
class Person:
name = ""
def walk():

javascript
Person.prototype.walk = function(){
}

php
class Person{
$name = “”;
function walk(){}
}

**Nota: En python no se usan los ; para definir variables

La palabra reservada Person? La palabra reservada: Class El nombre del objeto: Person

Waaao, esa definicion de funcion en JavaScript… Hahhaha

wtf con js!

el punto y coma de python! no va… XD

les comparto un ejemplo…

class mesa:
	def __init__(self, color, madera):
		self. color=color
		self. madera=madera
	def mostrar(self):
		print ("Es de color: ",self. color)
		print ("Su madera es: ",self. madera)



mesita=mesa("rojo", "pino") #declaro el objeto de tipo mesa

resultado=mesita. mostrar() #invoco el método mostrar
print(resultado) #imprimo el resultado

// In Php
class Person {
	$name = "";
	function walk() {}
}

Punto y coma en Python? Vaya, eso es nuevo.

No explico Js no?

Algo que acotar aquí es que cada lenguaje tiene un sintaxis distintas como vemos en java no se declara igual que en Php Java como saben es un lenguaje hecho para la poo, Python es mas de para data scientist la web es un lenguaje muy facil Sintaxis de UML Conocer la sintaxis de este es grandioso para poder saber como ubicar nuestro objetos en nuestros lenguajes de programacion veremos esto en 4 distintos codigos nunca esta demas saber uno poco de cada uno yo personamente aprendi a programar en java. Que es lo haremos drectamente como definir las clases y los objetos como sabemos dentro de una clase podemo agregar muchos objetos cada uno con diferentes tareas y tipos No les puedo mostrar graficamente pero imagineselo como un sustantivo conceptual por lo tanto describire tenemos un cuadro donde en el titulo ponemos la identidad o nombre de la clase despue de esto , el estado de esta y por ultimo el comportamiento. Ahora veamolo directamente en cuatro lenguaje Java, Phyton , Javascript y Php en todas la sintaxis sera diferente: de comprender entender y explicar, javascript esta en varios lugares desde el backend, frotend que es su fuerte, app moviles, data scienist, videojuegos etc. Php para la web este es directamente interperetado para esta, servidor, base de datos.
Pasos a seguir: Identificar el problema. Identificar los objetos. Definir clases Plasmar en un diagrama

Asi se veria la clase de Python corregido…
.

Si vi raro esa declaration en JS, pero bueno o importante es que se entiende.

uml
#clase --> identidad
#atributos/propiedades --> estado
#operacion --> comportamiento

clase --> funcion

Tarde me vengo a dar cuenta en que me he metido🤦‍♂️, yo tengo la culpa por meterme a aprender JavaScript 🤪

Apuntes

Clases en UML y su sintaxis en código para Java, Python, JavaScript y PHP, para la clase “Persona” con los atributos “name” y “walk”:

Java


public class Persona {
    // Atributos
    private String name;
    private boolean walk;

    // Constructor
    public Persona(String name, boolean walk) {
        this.name = name;
        this.walk = walk;
    }

    // Métodos
    public void setName(String name) {
        this.name = name;
    }

    public void setWalk(boolean walk) {
        this.walk = walk;
    }

    public String getName() {
        return name;
    }

    public boolean isWalk() {
        return walk;
    }
}

Python

class Persona:
    # Atributos
    def __init__(self, name, walk):
        self.name = name
        self.walk = walk

    # Métodos
    def set_name(self, name):
        self.name = name

    def set_walk(self, walk):
        self.walk = walk

    def get_name(self):
        return self.name

    def is_walk(self):
        return self.walk

JavaScript

class Persona {
    // Constructor
    constructor(name, walk) {
        this.name = name;
        this.walk = walk;
    }

    // Métodos
    set name(name) {
        this.name = name;
    }

    set walk(walk) {
        this.walk = walk;
    }

    get name() {
        return this.name;
    }

    get walk() {
        return this.walk;
    }
}

PHP

class Persona {
    // Atributos
    private $name;
    private $walk;

    // Constructor
    public function __construct($name, $walk) {
        $this->name = $name;
        $this->walk = $walk;
    }

    // Métodos
    public function setName($name) {
        $this->name = $name;
    }

    public function setWalk($walk) {
        $this->walk = $walk;
    }

    public function getName() {
        return $this->name;
    }

    public function isWalk() {
        return $this->walk;
    }
}

bueeeeeenoi pues...
para mi, solo se escribe la palabra reservada 
**class** (con su nombre claro)
variable = (propiedades)
function funName(){}

y con JS no me ago bolas por ahora jojo

function funName(){}
funName.prototype.walk = function(){
}

Hola:
“Person” no es una palabra reervada. La palabra reservada aqui es “class” en el caso de java: keywords = son aquellas palabras que estan incluidas dentro del core de java, es decir pertenencen al lenguaje, y no pueden ser utilizadas para dar nombre a clases, atributos o metodos. En esta caso, hubo un eror por parte de Anahi, ella queria decir la palabra reservada “Class” que nos permite crear una clase en java.

Definicion en UML para POO

Nombre Clases (Clase/Identidad)
Atributos (Estados)
Operacion o Metodos (comportamiento)

Ejemplo:

	Persona (Clase/Identidad)
    	name (Estado)
    	walk (comportamiento)
<h5>Definir en los 4 lenguajes:</h5>

JAVA
    class Person{
        String name = "";
        void walk() {}
    }

PYTHON
    class Person:
        name = "";
        def walk():

JAVASCRIPT
    function Person() {}
    Person.prototype.walk = function() {

    }

PHP
    class Person {
        $name = "";
        function walk() {}

Este curso es increible, y la informacion no cambia, pero en JS si han cambiado algunas cosas