No tienes acceso a esta clase

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

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

19 Días
5 Hrs
49 Min
31 Seg

Métodos dentro de una clase

9/19
Recursos

Aportes 16

Preguntas 1

Ordenar por:

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

Como recomendación al profe Miguel, para estos temas educativos es mucho más fácil para uno como estudiante entender si en lugar de poner cosas como:

var item in SuperPoderes

Pones:
var poder in SuperPoderes

Obviamente es lo mismo porque solamente es una variable, pero es mucho más fácil de entender para quien lee el código si ponemos un nombre que corresponda al objeto que vamos a iterar, en lugar de poner algo genérico como “item”.

Solo por comentar , que mientras estaba realizando estos cursos , por fin , despues de 2 años de busqueda , me ha salido trabajo de programador. Tengo 40 años y ha sido dificil .Esto es una carrera de fondo , asi que si estan ahi pensando en rendirse , aunque se que hay dias que es dificil , no cejen en el empeño y luchen por una vida mejor

💡 Esta imagen ilustra muy bien la diferencia entre clases, objetos, atributos y métodos:

using System.Text;

FinishAttack elephantGun = new FinishAttack();
elephantGun.Name = "Elephant Gun";
elephantGun.Description = "Giant fist wrapped in weaponry haki";
elephantGun.Damage = 200.5;

FinishAttack redHawk = new FinishAttack();
redHawk.Name = "Red Hawk";
redHawk.Description = "Rubber Fist wrapped in weaponry haki and fire";
redHawk.Damage = 280.5;

DevilFruit gomugomu = new DevilFruit();
gomugomu.Name = "Gomu Gomu No Mi";
gomugomu.Description = "The User have the complex of rubber and in his awakening converts into Nika God";
gomugomu.Type = TypeDevilFruit.Zoan;

OnePieceCharacter luffy = new OnePieceCharacter();
luffy.Name = "Monkey D. Luffy";
luffy.Description = "Future King of Pirates";
luffy.Occupation = Occupation.Pirate;
luffy.HaveFruit = true;
luffy.Fruit = gomugomu;
luffy.FinishAtacks.Add(elephantGun);
luffy.FinishAtacks.Add(redHawk);

string infoLuffy = luffy.GetInfo();

Console.WriteLine("ONE PIECE GAME:");
Console.WriteLine(infoLuffy);

class OnePieceCharacter
{
    public int Id;
    public string Name;
    public string Description;
    public Occupation Occupation;
    public bool HaveFruit;
    public DevilFruit? Fruit;
    public List<FinishAttack> FinishAtacks;
    public double Life;

    public OnePieceCharacter()
    {
        Id = 1;
        Occupation = Occupation.Civil;
        FinishAtacks = new List<FinishAttack>();
        Life = 1000d;
        HaveFruit = false;
        Fruit = null;
    }

    public string GetInfo()
    {
        StringBuilder sb = new StringBuilder();
        sb.AppendLine($"Nombre: {Name}");
        sb.AppendLine($"Descripcion: {Description}");
        sb.AppendLine($"Ocupacion: {Occupation}");
        if (Fruit != null)
        {
            sb.AppendLine($"Fruta del diablo: {Fruit?.Name}");
        } else
        {
            sb.AppendLine($"Fruta del diablo: No tiene");
        }
        foreach (var atack in FinishAtacks)
        {
            sb.AppendLine($"Ataque: {atack.Name}  ->  {atack.Damage} damage");

        }

        return sb.ToString();
    }
}


class DevilFruit
{
    public string Name;
    public string Description;
    public TypeDevilFruit Type;

    public DevilFruit()
    {
        Type = TypeDevilFruit.Paramecia;
    }
}

enum Occupation
{
    Civil,
    Pirate,
    Marine,
    Revolutionary
}
enum TypeDevilFruit
{
    Paramecia,
    Zoan,
    Logia
}

class FinishAttack
{
    public string Name;
    public string Description;
    public double Damage;

    public FinishAttack()
    {
        Damage = 10d;
    }
}

Métodos dentro de una clase en C# POO:

En resumen:

  • Los métodos son acciones que una clase puede realizar.

  • Se definen dentro de la clase con una estructura similar a una función.

  • Permiten encapsular funcionalidad y reutilizarla.

  • Pueden tener diferentes tipos de acceso (public, private, etc.)

  • Pueden tener parámetros para recibir datos y devolver valores.

Ejemplo:

public class Persona
{
    public void Saludar()
    {
        Console.WriteLine("Hola!");
    }

    public string ObtenerNombre(string nombre)
    {
        return nombre;
    }
}

Beneficios:

  • Modularidad: Dividen el código en partes más pequeñas y manejables.

  • Reutilización: Permiten usar la misma funcionalidad en diferentes partes del código.

  • Encapsulamiento: Ocultan detalles de implementación y solo exponen la funcionalidad necesaria.

```c# // See https://aka.ms/new-console-template for more information var poderVolar = new SuperPoder(); poderVolar.Nombre = "Volar"; poderVolar.Descripcion = "Capacidad para volar y planear en el aire"; poderVolar.Nivel = NivelPoder.NivelDos; var superFuerza = new SuperPoder(); superFuerza.Nombre = "Super fuerza"; superFuerza.Nivel = NivelPoder.NivelTres; var sentidoArácnido = new SuperPoder(); sentidoArácnido.Nombre = "Sentido arácnido"; sentidoArácnido.Nivel = NivelPoder.NivelDos; var visiónRayosLaser = new SuperPoder(); visiónRayosLaser.Nombre = "Visión Rayos Láser"; visiónRayosLaser.Nivel = NivelPoder.NivelTres; SuperHeroeMarvel superman = new SuperHeroeMarvel(); superman.Id = 1; superman.Nombre = "Superman"; superman.IdentidadSecreta = "Clark Kent"; superman.Ciudad = "Metropolis"; superman.PuedeVolar = true; List<SuperPoder> poderesSuperman = new List<SuperPoder>(); poderesSuperman.Add(superFuerza); poderesSuperman.Add(poderVolar); poderesSuperman.Add(visiónRayosLaser); superman.SuperPoderes = poderesSuperman; superman.UsarSuperPoderes(); SuperHeroeMarvel spiderman = new SuperHeroeMarvel(); spiderman.Id = 2; spiderman.Nombre = "Spider-Man"; spiderman.IdentidadSecreta = "Peter Parker"; spiderman.Ciudad = "New York"; spiderman.PuedeVolar = false; List<SuperPoder> poderesSpiderman = new List<SuperPoder>(); poderesSpiderman.Add(sentidoArácnido); poderesSpiderman.Add(superFuerza); spiderman.SuperPoderes = poderesSpiderman; spiderman.UsarSuperPoderes(); SuperHeroeMarvel thor = new SuperHeroeMarvel(); thor.Id = 3; thor.Nombre = "Thor"; thor.IdentidadSecreta = "Thor"; thor.Ciudad = "Olimpo"; thor.PuedeVolar = true; List<SuperPoder> poderesThor = new List<SuperPoder>(); poderesThor.Add(poderVolar); poderesThor.Add(superFuerza); thor.SuperPoderes = poderesThor; thor.UsarSuperPoderes(); class SuperHeroeMarvel { public int Id=1; public string Nombre; public string IdentidadSecreta; public string Ciudad; public List<SuperPoder> SuperPoderes =new List<SuperPoder>(); public bool PuedeVolar; public SuperHeroeMarvel() { Id = 1; SuperPoderes= new List<SuperPoder>(); PuedeVolar = false; } public void UsarSuperPoderes() { foreach (var item in SuperPoderes) { Console.WriteLine($"{Nombre} está usando el super poder {item.Nombre}!!"); } } } class SuperPoder { public string Nombre; public string Descripcion; public NivelPoder Nivel; public SuperPoder() { Nivel = NivelPoder.NivelUno; } } enum NivelPoder { NivelUno, NivelDos, NivelTres } ```
Se me hace un poco extraño que las propiedades de una clase vayan en minúscula, así es la convención pero es curioso jaja.
Los métodos son bloques de código que realizan una tarea específica dentro de una clase o un objeto. Son una forma de encapsular acciones o comportamientos que un objeto puede realizar, y permiten reutilizar el código y organizarlo de manera lógica. Un método se compone de: * **Modificadores de acceso**: Definen la visibilidad del método (público, privado, protegido, etc.). * **Tipo de retorno**: Es el tipo de dato que el método devuelve. Si no devuelve nada, el tipo de retorno es `void`. * **Nombre del método**: Debe ser un identificador único dentro de la clase. * **Parámetros (opcional)**: Los datos que el método recibe cuando es invocado. Se definen entre paréntesis. * **Cuerpo del método**: Es el bloque de código que contiene las instrucciones que se ejecutarán. ```js [modificador de acceso] [tipo de retorno] [nombre del método]([parámetros]) { // Código del método } ```
Los métodos son bloques de código que realizan una tarea específica dentro de una clase o un objeto. Son una forma de encapsular acciones o comportamientos que un objeto puede realizar, y permiten reutilizar el código y organizarlo de manera lógica. Un método se compone de: * **Modificadores de acceso**: Definen la visibilidad del método (público, privado, protegido, etc.). * **Tipo de retorno**: Es el tipo de dato que el método devuelve. Si no devuelve nada, el tipo de retorno es `void`. * **Nombre del método**: Debe ser un identificador único dentro de la clase. * **Parámetros (opcional)**: Los datos que el método recibe cuando es invocado. Se definen entre paréntesis. * **Cuerpo del método**\[modificador de acceso] \[tipo de retorno] \[nombre del método]\(\[parámetros]) { // Código del método }: Es el bloque de código que contiene las instrucciones que se ejecutarán. ```js [modificador de acceso] [tipo de retorno] [nombre del método]([parámetros]) { // Código del método } ```
```txt var theDarkKnight = new Film(); theDarkKnight.NameFilm = "The Dark Knight"; theDarkKnight.YearFilm = 2008; theDarkKnight.Stars = NumStars.Star4; var tearsOfTheSun = new Film(); tearsOfTheSun.NameFilm = "Tears of the Sun"; tearsOfTheSun.YearFilm = 2003; tearsOfTheSun.Stars = NumStars.Star3; var multiple = new Film(); multiple.NameFilm = "Multiple"; multiple.YearFilm = 2016; multiple.Stars = NumStars.Star3; var americanPsycho = new Film(); americanPsycho.NameFilm = "American Psycho"; americanPsycho.YearFilm = 2000; americanPsycho.Stars = NumStars.Star3; var person1 = new Actor(); person1.Id = 1; person1.Name = "Christian Bale"; person1.Oscar = true; List<Film> filmsPerson1 = new List<Film>(); filmsPerson1.Add(theDarkKnight); filmsPerson1.Add(americanPsycho); person1.Films = filmsPerson1; string resultMoviesArtist1 = person1.ActInTheMovie(); Console.WriteLine(resultMoviesArtist1); var person2 = new Actor(); person2.Id = 2; person2.Name = "Bruce Willis"; person2.Oscar = false; List<Film> filmsPerson2 = new List<Film>(); filmsPerson2.Add(tearsOfTheSun); filmsPerson2.Add(multiple); person2.Films = filmsPerson2; string resultMoviesArtist2 = person2.ActInTheMovie(); Console.WriteLine(resultMoviesArtist2); class Actor { public int Id; public string Name; public bool Oscar; public List<Film> Films; public Actor() { Id = 1; Name = "Name Actor"; Films = new List<Film>(); Oscar = false; } public string ActInTheMovie() { StringBuilder sb = new StringBuilder(); foreach (var movie in Films) { sb.AppendLine($"{Name} act in the film {movie.NameFilm}"); } return sb.ToString(); } } class Film { public string NameFilm; public int YearFilm; public NumStars Stars; public Film() { NameFilm = "Name"; YearFilm = 9999; Stars = NumStars.Star0; } } enum NumStars { Star0, Star1, Star2, Star3, Star4, Star5 } ```
![](https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExdjJjNjZ0dWFmOGgzbHV3ZjloeXdkdjFxbnF4YW00cDZzaWU2a2FvbCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/TFPdmm3rdzeZ0kP3zG/giphy.gif) Decidí implementar un nuevo método para practicar lo aprendido :) ! Espero que les ayude 🤓 ```c# // SuperPowers. using System.Text; var strengthPower = new SuperPower { Name = "Super strength", Description = "The strength that a superhero with this power can have is not human", Element = ElementTypeEnum.Normal, PowerQuality = PowerQualityEnum.Great }; var speedPower = new SuperPower { Name = "Super speed", Description = "With this power, the hero can have a super speed in seconds", Element = ElementTypeEnum.Normal, PowerQuality = PowerQualityEnum.Good }; var windPower = new SuperPower { Name = "Weather control", Description = "Hero can control the weather with this power", Element = ElementTypeEnum.Wind, PowerQuality = PowerQualityEnum.Regular }; var electricPower = new SuperPower { Name = "Thunder generation", Description = "Hero can control thunders with this power", Element = ElementTypeEnum.Electric, PowerQuality = PowerQualityEnum.Great }; // Colors var redColor = new Colors { Name = "Red" }; var blackColor = new Colors { Name = "Black" }; var yellowColor = new Colors { Name = "Yellow" }; var whiteColor = new Colors { Name = "White" }; // Heroes var firstHero = new Hero(); var secondHero = new Hero(); var thirdHero = new Hero(); // Hero #1 firstHero.ID = 1; firstHero.RealName = "Bob Parr"; firstHero.HeroName = "Mr Incredible"; firstHero.CanFly = false; firstHero.IsHuman = true; List<Colors> incredibleColorsCostume = new List<Colors>(); incredibleColorsCostume.Add(redColor); incredibleColorsCostume.Add(blackColor); incredibleColorsCostume.Add(yellowColor); List<SuperPower> incrediblePower = new List<SuperPower>(); incrediblePower.Add(strengthPower); firstHero.Powers = incrediblePower; string powersFirst = firstHero.UseSuperPower(); Console.WriteLine(powersFirst); firstHero.ColorsCostume = incredibleColorsCostume; string colorsFirst = firstHero.GetColorsCostume(); Console.WriteLine(colorsFirst); // Hero #2 secondHero.ID = 2; secondHero.RealName = "Barry Allen"; secondHero.HeroName = "Flash"; secondHero.CanFly = false; secondHero.IsHuman = true; List<Colors> flashColors = new List<Colors>(); flashColors.Add(redColor); flashColors.Add(yellowColor); List<SuperPower> flashPower = new List<SuperPower>(); flashPower.Add(speedPower); secondHero.Powers = flashPower; string powersSecond = secondHero.UseSuperPower(); Console.WriteLine(powersSecond); secondHero.ColorsCostume = flashColors; string colorsSecond = secondHero.GetColorsCostume(); Console.WriteLine(colorsSecond); // Hero #3 thirdHero.ID = 3; thirdHero.RealName = "Ororo Munroe"; thirdHero.HeroName = "Storm"; thirdHero.CanFly = true; thirdHero.IsHuman = false; List<Colors> stormColors = new List<Colors>(); stormColors.Add(whiteColor); stormColors.Add(yellowColor); stormColors.Add(redColor); stormColors.Add(blackColor); List<SuperPower> stormPower = new List<SuperPower>(); stormPower.Add(windPower); stormPower.Add(electricPower); thirdHero.Powers = stormPower; string powerThird = thirdHero.UseSuperPower(); Console.WriteLine(powerThird); thirdHero.ColorsCostume = stormColors; string thirdColors = thirdHero.GetColorsCostume(); Console.WriteLine(thirdColors); class Hero { public int ID { get; set; } public string RealName { get; set; } public string HeroName { get; set; } public bool CanFly { get; set; } public List<Colors> ColorsCostume { get; set; } public bool IsHuman { get; set; } public List<SuperPower> Powers { get; set; } public Hero() { ID = 0; RealName = string.Empty; HeroName = string.Empty; CanFly = false; ColorsCostume = new List<Colors>(); IsHuman = false; Powers = new List<SuperPower>(); } public string UseSuperPower() { StringBuilder sb = new StringBuilder(); foreach (var item in Powers) { sb.AppendLine($"The hero {HeroName} just use the super power {item.Name}"); } return sb.ToString(); } public string GetColorsCostume() { StringBuilder sb = new StringBuilder(); foreach (var item in ColorsCostume) { sb.AppendLine($"The color {item.Name} its include in the costume of the hero {HeroName}"); } return sb.ToString(); } } class SuperPower { public string Name { get; set; } public string Description { get; set; } public ElementTypeEnum Element { get; set; } public PowerQualityEnum PowerQuality { get; set; } public SuperPower() { Name = string.Empty; Description = string.Empty; Element = ElementTypeEnum.Normal; PowerQuality = PowerQualityEnum.Regular; } } class Colors { public string Name { get; set; } public Colors() { Name = string.Empty; } } enum ElementTypeEnum { Normal = 10, Electric = 20, Wind = 30 } enum PowerQualityEnum { Regular = 10, Good = 20, Great = 30 } ```

Debe publicar en el curso el codigo que va implementando, para poder copiarlo o comparar con lo que uno transcribe, y sea de ayuda

string resultSuperPoderes = superma.UsarSuperPoderes();
Console.WriteLine(resultSuperPoderes);

StringBuilder es una clase en C# que se utiliza para representar una cadena de caracteres mutable. A diferencia de las cadenas de caracteres normales (string) en .NET, que son inmutables, StringBuilder permite modificar el contenido de la cadena sin generar una nueva instancia de cadena cada vez que se realiza una modificación. Esto lo hace especialmente útil para operaciones que requieren cambios frecuentes en el contenido de la cadena, como la concatenación repetida, porque mejora el rendimiento al reducir la cantidad de objetos string innecesarios creados en la memoria.

Este código crea un StringBuilder, le añade algunas líneas de texto utilizando AppendLine y luego imprime el resultado final.

<code> 
using System;
using System.Text;

class Program
{
    static void Main()
    {
        // Crear una instancia de StringBuilder.
        StringBuilder sb = new StringBuilder();

        // Añadir algunas líneas de texto.
        sb.AppendLine("Primera línea.");
        sb.AppendLine("Segunda línea.");
        sb.AppendLine("Tercera línea.");

        // También se puede añadir texto sin un salto de línea al final.
        sb.Append("Final sin salto de línea.");

        // Convertir el StringBuilder a string y mostrar el resultado.
        string resultado = sb.ToString();
        Console.WriteLine(resultado);
    }
}

se crea un objeto StringBuilder llamado sb. Luego, se utiliza el método AppendLine para añadir tres líneas de texto a sb, cada una seguida de un salto de línea. Después, se añade una línea sin salto de línea al final usando el método Append. Finalmente, se convierte el contenido de sb a un string usando el método ToString y se imprime en la consola.

La salida del programa sería:

<code> 
Primera línea.
Segunda línea.
Tercera línea.
Final sin salto de línea.

// Método Adicional para la Clase SuperHeroe: // Descripción: Este método, llamado GritarNombre, permite que el superhéroe imprima en consola un mensaje proclamando su nombre y su determinación para defender la ciudad. public void GritarNombre() { Console.WriteLine($"¡Soy {Nombre} y defenderé la ciudad!"); } // Ejemplo de invocación Superman.GritarNombre(); // Método Adicional para la Clase SuperPoder: // Descripción: El método ObtenerInformacion devuelve una cadena que contiene información detallada sobre el superpoder, incluyendo nombre, descripción y nivel. public string ObtenerInformacion() { return $"Superpoder: {Nombre}\nDescripción: {Descripcion}\nNivel: {Nivel}"; } // Ejemplo invocación string infoPoderVolar = poderVolar.ObtenerInformacion(); Console.WriteLine(infoPoderVolar);
Mi aporte basado en uno de mis juegos favoritos, Monster Hunter! ```js using System.Text; Monster Rath00 = new() { name = "Rathalos", specie = Species.FlyingWyvern, weakness = "Dragon", resistance = "Fire", location = Locations.AncientForest, }; Console.WriteLine($"Name: {Rath00.name}"); Console.WriteLine($"Specie: {Rath00.specie}"); Console.WriteLine($"Weakness: {Rath00.weakness}"); Console.WriteLine($"Resistance: {Rath00.resistance}"); Console.WriteLine($"Location: {Rath00.location}"); Rath00.Attack(); Rath00.Move(); Console.WriteLine(Rath00.GetMonster()); class Monster { // VARIABLES // public string name; public Species specie; public string weakness; public string resistance; public Locations location; // CONSTRUCTOR // public Monster() { name = ""; weakness = ""; resistance = ""; } // METHODS // public void Move() { Console.WriteLine($"{name} is moving"); } public void Attack() { Console.WriteLine($"{name} hits!"); } public string GetMonster() { StringBuilder sb = new(); sb.AppendLine($"This monster is called {name}, you can found it in {location}"); return sb.ToString(); } } enum Species { FlyingWyvern, BirdWyvern, BruteWyvern, ElderDragon } enum Locations { AncientForest, WildspireWaste, CoralHighlands, RottenVale, EldersRecess } ```