• Home

    Escolha seu Plano

    Carreiras Alura

    Evolua com profundidade técnica, direção clara e aplicação prática.

    Jornadas guiadas do básico ao avançado com checkpoints práticos, desenhadas para quem busca profundidade e protagonismo técnico.

    Iniciante

    Comece do zero com uma trilha clara e progressiva.

    Fundamentos práticos para dar os primeiros passos com segurança e construir uma base sólida.

    Intermediário

    Continue sua evolução com cursos que conectam fundamentos, ferramentas e prática profissional. Ganhe autonomia, e avance para projetos mais completos.

    Avançado

    Aprofunde temas técnicos e estratégicos para enfrentar desafios mais complexos. Explore boas práticas, arquitetura, performance com visão profissional.

    Cursos

    Ver mais cursos de Back-end
    • Pensamento computacional: fundamentos da computação e lógica de programação
    • Lógica de programação: mergulhe em programação com JavaScript
    • DDD: fundamentos do design orientado a domínio
    • ASP.NET: autenticação e autorização em APIs e aplicações web
    • Microsserviços: migração de monólitos e modularização

    Cursos

    Ver mais cursos de Dados
    • Python para Dados: primeiros passos
    • Excel: domine o editor de planilhas
    • Engenharia de Dados: Orquestração de Pipelines com Apache Airflow
    • Power BI Desktop: construindo meu primeiro dashboard
    • Governança e Arquitetura de Dados

    Cursos

    Ver mais cursos de Inteligência Artificial
    • IA: Explorando o Potencial da Inteligência Artificial Generativa
    • Engenharia de Prompt: Criando Prompts Eficazes para IA Generativa
    • Claude para Análise de Dados: prompts, integrações e automações
    • Agno: criando agentes e sistemas multiagente
    • Engenharia de software na era da IA: segurança de aplicações com agentes, MCPs e código gerado por IA

    Cursos

    Ver mais cursos de Front-end
    • HTML e CSS: ambiente, estrutura e estilo
    • React: realizando testes avançados com Jest e Testing Library
    • React: integrando TypeScript em projetos
    • JavaScript: aprendendo a programar
    • React: aplicando arquiteturas de Micro frontends

    Cursos

    Ver mais cursos de DevOps
    • Sistema Operacional Linux: fundamentos e administração prática
    • Containers e Docker: empacotamento, isolamento e gestão
    • Redes: dos conceitos iniciais à criação de uma intranet
    • Linux: gerenciando diretórios, arquivos, permissões e processos
    • Cibersegurança: Fundamentos e práticas integradas

    Cursos

    Ver mais cursos de UX & Design
    • UX Research: mapeando a experiência da pessoa usuária
    • UX/UI Design: Entregando produtos digitais com IA
    • UI Design: Prototipação e animações interativas
    • Figma: Conhecendo o programa
    • Product Design: métricas e ciclo de vida do produto

    Cursos

    Ver mais cursos de Inovação e Gestão
    • Canva: Criação de landing pages e e-mail marketing
    • Agilidade: como ela pode ajudar a criar um time de alta performance
    • Google Analytics 4: Extrair insights e configurar eventos
    • Management 3.0: gerencie o ambiente, não as pessoas
    • Automação de processos com n8n: Inteligência de dados para Marketing

    Cursos

    Ver mais cursos de Mobile
    • React Native: Estilização e Layouts com Flexbox e StyleSheet
    • Flutter: Graphql e suporte offline
    • Android com Gemini: Trabalhando com textos e imagens na IA
    • Dart: trabalhando com orientação a objetos
    • React Native: Dominando Listas com FlatList e ScrollView

    Carreiras

    Ver mais carreiras
    • Especialista em IA
    • Engenharia de IA
    • Ai native software engineering
    • Arquitetura de Soluções com IA
    • AI Product Design
    • Engenharia de Machine Learning
    • Desenvolvimento Front-End React
    • Engenharia de Dados
    • Cloud Security
    • Social Media Marketing
    • Engenharia de Agentes de IA

    Cursos

    • Engenharia de Prompt: Prompts Eficazes para IA Generativa
    • Claude Code: Criando sua Primeira Aplicação
    • Python: Crie sua Primeira Aplicação
    • Git e GitHub: Compartilhando e Colaborando
    • N8N: Fluxos de Trabalho Avançados

    Cursos

    • Copilot Studio: Solução Multiagentes
    • Padrões de API HTTP e Modelagem de APIs
    • Python para Análise de Dados com SQL
    • Docker: Criando e Gerenciando Containers
    • Design com IA: Otimizando o Processo Criativo

    Cursos

    • Model Context Protocol (MCP)
    • Spec-Driven Development: Dev Assistido por Agentes
    • Arquitetura de Sistemas Distribuídos com Java
    • Governança de Modelos e Reprodutibilidade
    • Pentest: Vulnerabilidades em Aplicações Web

    Escolha seu Plano

    Skills & Go

    O Skills & Go é para Tech Leads, Product Managers, estrategistas e early adopters que transformam ideias em soluções de alto impacto. Em cursos ao vivo e 100% online, você domina a nova era da IA em tempo real.

    Aulas ao vivo

    Saiba mais
    • Agentic Engineering: orquestre múltiplos agentes com confiabilidade
    • Building AI Products: transforme ideias em produtos reais com IA
    • AI Data Strategy: transforme dados em decisões estratégicas com IA

    Escolha seu Plano

    Eventos Alura

    Nossos eventos são pensados para quem quer estar à frente das mudanças em tecnologia, IA e inovação. Em experiências presenciais, você acompanha tendências e se conecta com especialistas que estão moldando o futuro.

    Próximos eventos

    • IA Conference
    • Alura Signals
  • Talent Lab
  • IA

    Escolha seu Plano

    Conteúdos gratuitos

    Explore conteúdos gratuitos para aprender tecnologia no seu ritmo. Encontre artigos com conteúdos técnicos para aprender na prática, notícias para acompanhar as principais tendências do mercado e o Alura Labs, com análises e reflexões de especialistas sobre tecnologia, IA e carreira.

    Conteúdos gratuitos

    • Artigos
    • Notícias
    • Alura Labs
  • Para Empresas
Ver planos
Links principais
  • Planos e Promoções
  • Links complementares do menu mobile
  • Talent lab
  • Inteligência Artificial
  • Pós Graduações
  • Para Empresas
  • Sobre a Alura
  • Grupo Alun
  • Entrar
    • Home
    • Carreiras
    • Skills & Go
    • Talent Lab
    • Inteligência Artificial
    • Pós Graduações
    • Artigos
    • Sobre a Alura
    • Grupo Alun
    LoginContato
    • LinkedIn
    • Instagram
    • YouTube

    Institucional

    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status
    Institucional
    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status

    A Alura

    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes
    A Alura
    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes

    Conteúdos

    • Alura Cases
    • Imersões
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Conteúdos
    • Alura Cases
    • Imersões
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Alura

    O que você quer aprender?

    FiltrosFiltrar por:

    Tipos de conteúdo
    Categorias
    • Back-end

      Sobre a formação C++

      C++ é uma das linguagens mais conhecidas e utilizadas do mercado. Nessa formação você vai aprender desde a base da linguagem até práticas avançadas como testes automatizado, otimizações de performance e muito mais.

    • Back-end

      Classe Object C#

      # Transcrição Olá, tudo bom? Meu nome é **André Bessa**, faço parte do time de instrutores da Alura. Neste vídeo, vamos tratar da **classe Object**, muito importante na plataforma .NET. Para tratar desse assunto, vamos usar o projeto de um módulo de cliente do banco ByteBank, em que definiremos novos comportamentos para a classe Cliente. Por exemplo, podemos exibir todas as informações de um cliente de uma vez só, em vez de chamar vários métodos de ConsoleWriteLine(). Essa implementação é interessante, pois outros desenvolvedores do projeto também poderão utilizar essa classe de maneira mais fácil. Com o projeto aberto no Visual Studio Community 2022, no arquivo Program.cs, notaremos que atualmente a exibição dos dados do usuário é feita com Console.WriteLine(), um método padrão para projetos console. Já no arquivo Cliente.cs, veremos que a classe Cliente é bem simples, tem apenas suas propriedades autoimplementadas com get e set: CPF, nome, e-mail e idade. Voltando ao Program.cs, a partir da linha 3, definimos um novo objeto do tipo Cliente e passamos informações para suas quatro propriedades: Cliente cliente = new Cliente(); cliente.Nome = "André"; cliente.Cpf = "111.444.666-88"; cliente.Email = "[email protected]"; cliente.Idade 23; Na sequência, para exibir esses dados, usamos Console.WriteLine() chamando cliente.Nome, cliente.Cpf e cliente.Idade: Console.WriteLine(cliente.Nome); Console.WriteLine(cliente.Cpf); Console.WriteLine(cliente.Idade); Essa construção não está muito boa, pois estamos escrevendo três linhas de código para exibir informações do nosso objeto. Nossa meta é que o desenvolvedor consiga obter esse resultado simplesmente passando o objeto cliente como parâmetro ao Console.WriteLine(). Vamos adicionar essa opção na linha 13: using ModuloCliente; Cliente cliente = new Cliente(); cliente.Nome = "André"; cliente.Cpf = "111.444.666-88"; cliente.Email = "[email protected]"; cliente.Idade 23; Console.WriteLine(cliente.Nome); Console.WriteLine(cliente.Cpf); Console.WriteLine(cliente.Idade); Console.WriteLine(cliente); Ao posicionar o *mouse* sobre um parâmetro, é possível verificar mais informações sobre ele, como seu tipo. Nos três primeiros casos, o método Console.WriteLine() está recebendo Nome (*string*), Cpf (*string*) e Idade (inteiro). Já quando passamos cliente como parâmetro, trata-se de um **objeto** — é mais complexo, porém o código não alega nenhum erro. A classe Console tem algumas sobrecargas do método WriteLine() que recebem tipos diferentes, mas será que uma delas recebe o tipo Cliente? Para investigar esse tópico, vamos acessar os **metadados** da classe Console. Basta pressionar e segurar a tecla "Ctrl" e clicar sobre a palavra Console (por exemplo, no início da linha 13). Desse modo, abrimos os metadados da classe, onde conseguimos visualizar as propriedades e os métodos disponíveis nela. A partir da linha 1667, podemos verificar as sobrecargas do método WriteLine(): há uma que recebe bool, uma que recebe decimal, outra que recebe long e, na linha 1821, encontraremos uma sobrecarga que recebe um object. A seguir, vamos entender melhor o que é o tipo object. Voltando ao Program.cs, o Console.WriteLine() não resulta em erro quando passamos como parâmetro um objeto completo (como cliente), porque Cliente é um Object. Vamos dar uma olhada nos metadados de Object também. Na linha 15, escreveremos "Object" e clicaremos nele, segurando a tecla "Ctrl". Observando os metadados, notamos que a classe Object também tem alguns métodos disponíveis. Por exemplo, na linha 22, temos public virtual bool Equals(object? obj) — considerando nossos conhecimentos das regras de sobrecarga e sobrescrita, sabemos que esse método deve ser sobrescrito. Temos também GetHashCode(), GetType(), MemberwiseClone(), ReferenceEquals() e ToString(). Se nossa classe é um object, quer dizer que temos todos esses métodos disponíveis nela! Voltando ao Program.cs, na linha 13, vamos acrescentar um **ponto** após cliente para acessar suas propriedades e métodos. Veremos Nome, Cpf, Email e também ToString, GetType, GetHashCode, entre outros. Ou seja, a classe Cliente herda de Object! **Todas as classes do . NET herdam explícita ou implicitamente da classe Object.** Vamos remover a palavra Object da linha 13, pois não vamos usá-la mais. Em seguida, vamos ao arquivo Cliente.cs para fazer um teste. Na linha 9, para indicar que a classe Cliente herda de Object, utilizaremos o operador dois pontos (**:**) seguido da classe da qual estamos herdando: public class Cliente:Object Note que não ocorre nenhum erro, porém essa construção é redundante, pois o compilador do C# já entende que essa classe herda de Object. Tanto que já tínhamos aqueles métodos disponíveis (ToString e Equals, por exemplo). Portanto, vamos apagar :Object. Vamos relembrar qual era nosso objetivo inicial: usar um método para exibir todas as informações do objeto cliente. Para tanto, após as propriedades da classe Cliente, vamos sobrescrever o método ToString() que é virtualna classe Object. Na linha 16, basta digitarmos override e pressionar a barra de espaço para o Visual Studio mostrar algumas sugestões de métodos para sobrescrever. Ao selecionar ToString(), a IDE gerará automaticamente uma estrutura que chama ToString() da classe base, isto é, de Object: public override string ToString() { return base.ToString(); } Para testar, vamos ao Program.cs e passaremos cliente.ToString() como parâmetro do Console.WriteLine(), na linha 13: Console.WriteLine(cliente.ToString()); Em seguida, vamos rodar a aplicação, clicando no *play* no menu superior do Visual Studio. O projeto será compilado e renderizado. Como resultado, serão exibidas as propriedades que passamos aos três primeiros Console.WriteLine() seguido de "ModuloCliente.Cliente", como era mostrado anteriormente. Quando passamos um objeto para o WriteLine(), ele invoca o método ToString() do objeto. Como não há implementação, ele invoca da classe base (Object), que retorna o nome da classe. Então, na classe Cliente, em vez de retornar da classe base, vamos **redefinir o método ToString()**: public override string ToString() { return $"Nome: {this.Nome}, \n" + $"Email: {this.Email}, \n" + $"Idade: {this. Idade}, \n" + $"Cpf: {this.Cpf}"; } > A expressão \n serve para criar uma quebra de linha. Assim, definimos como as informações serão exibidas, quando invocarmos o método ToString() de Cliente. Vamos salvar e testar, pressionando o *play* na parte superior do Visual Studio. A partir da quarta linha, veremos o resultado do método ToString() de Cliente. Vale lembrar que, quando passamos o objeto completo para o Console.WriteLine(), ele também invoca o ToString(): Nome: André, Email: [email protected], Idade: 23, Cpf: 111.444.666-88 Então, aprendemos que existe uma superclasse do .NET chamada Object da qual todas as classes herdam. Não somente as classes, todos os tipos do .NET também herdam de Object, por meio da classe ValueType! Por exemplo, um inteiro, um float, um double. A Struct que representa os inteiros (o int), por exemplo, herda de ValueType. Dessa maneira, o inteiro também herda de Object pelo mecanismo da herança. Basicamente, no .NET, temos dois tipos de objetos: por referência (onde entram nossas classes) e os ValueType (os tipos de valor, como inteiro): ![Diagrama sobre a classe Object. Há três níveis. No nível inferior, à direita, há um quadrado representando Struct. No segundo nível, há dois quadrados: ValueType à direita e MinhaClasse à esquerda. No nível superior, há um grande quadrado representando Class Object, com três métodos de exemplo. Há uma seta que liga Struct a ValueType, uma seta que liga ValueType a Classe Object e uma seta que liga MinhaClasse a Class Object.]( Como tem sido sua experiência aprendendo C# e orientação a objetos na Alura? Tem gostado? Não deixe de praticar bastante. Nos vemos na próxima!

    Ainda não estuda com a gente?

    Invista na transformação da sua carreira!

    Comece agora
  • ArtigosBack-end

    Artigo Começando a programar com C

    Uma linguagem muito utilizada no mundo de hoje é a linguagem C, mas como podemos começar a programar com C?

  • CursosBack-end

    Curso C#: aplicando a Orientação a Objetos

    Domine C# com POO na Alura. Crie aplicações reais utilizando boas práticas no Visual Studio.

  • CursosBack-end

    Curso C#: Trabalhando com Arrays e Coleções

    Aprofunde seus conhecimentos de orientação a objetos com C# trabalhando com estruturas Arrays e Coleções.

  • CursosBack-end

    Curso C#: criando sua primeira aplicação

    Aprenda C# do zero com a Alura. Crie programas e explore o ecossistema em diferentes sistemas operacionais.

  • CursosBack-end

    Curso C#: dominando Orientação a Objetos

    Domine POO em C# com a Alura. Use herança, interfaces e polimorfismo em aplicações reais.

  • CursosBack-end

    Curso C#: Eventos, Delegates e Lambdas

    Domine Eventos, Delegates e Lambdas em C# para criar aplicações dinâmicas e eficientes. Aprenda técnicas práticas e potencialize seu código!

  • CursosBack-end

    Curso C#: Paralelismo no mundo real

    Trabalhe de maneira paralela na plataforma .NET com C#, conhecendo as bibliotecas, o Async Await e técnicas importantes nesse curso da Alura online

  • CursosBack-end

    Curso Avançando com C++: performance e otimização

    Neste curso, saiba como trabalhar com strings, string_view, copy constructor e várias outras melhorias de performance no C++.

  • 1Página 12Página 2…41Página 41
    1Página 12Página 23Página 34Página 45Página 5…41Página 41