Curso POO Teoria #07a - Relacionamento entre Classes

Curso POO Teoria #07a - Relacionamento entre Classes

Introdução ao Curso de Programação Orientada a Objetos

Visão Geral da Seção: Nesta seção introdutória, o professor apresenta a sala de jogos e os ambientes descontraídos presentes em empresas de tecnologia. Ele destaca a importância de criar um ambiente propício para que os funcionários possam trabalhar com tranquilidade.

  • O professor dá as boas-vindas aos alunos e introduz o curso de programação orientada a objetos.
  • Ele menciona os diferentes ambientes presentes nas empresas, como salas de jogos e espaços para massagem.
  • Destaca que esses ambientes são criados para proporcionar um ambiente tranquilo e estimulante para os funcionários.
  • Menciona que, apesar das pausas descontraídas, é importante manter o foco no trabalho.

Aula 07 - Relacionamento entre Classes

Visão Geral da Seção: Nesta aula teórica, o professor aborda o tema do relacionamento entre classes na programação orientada a objetos. Ele ressalta a importância desse conceito para entender a estrutura dos objetos.

  • O professor inicia a aula explicando que agora irá abordar o relacionamento entre classes.
  • Destaca que esse assunto será tratado em mais detalhes nas próximas aulas.
  • Informa que será necessário assistir às aulas 7 e 8 para compreender completamente o relacionamento entre classes.
  • Agradece aos colaboradores do curso e destaca a importância do apoio dos alunos.
  • Explica que as aulas são disponibilizadas gratuitamente graças ao apoio dos patrocinadores.

Agradecimentos e Exemplo do Curso

Visão Geral da Seção: Nesta seção, o professor agradece aos colaboradores do curso e apresenta um exemplo prático que será desenvolvido nas próximas aulas.

  • O professor agradece aos colaboradores do curso pelo apoio.
  • Destaca que os exercícios propostos são fruto da colaboração dos alunos.
  • Apresenta o exemplo prático do "Ultra Esmaga-Moscas", um jogo de luta fictício.
  • Explica as características que serão cadastradas para cada lutador no jogo.
  • Mostra o diagrama de classes com os atributos necessários para cada lutador.

Conceito de Atributos em Programação Orientada a Objetos

Visão Geral da Seção: Nesta seção, o professor explica o conceito de atributos em programação orientada a objetos e como eles são representados no diagrama de classes.

  • O professor reforça que os atributos são as características de um objeto.
  • Apresenta o diagrama de classes com os atributos do lutador.
  • Explica que os atributos serão cadastrados durante o exercício prático.
  • Destaca a importância do encapsulamento dos atributos.

Essas são as principais seções e informações abordadas no vídeo.

Não pule etapas

Visão geral da seção: Nesta seção, é enfatizado que não se deve pular etapas ao aprender programação orientada a objetos. É importante seguir uma abordagem organizada e estruturada para obter melhores resultados.

  • Pular etapas pode levar a dificuldades futuras.
  • É necessário seguir as instruções e organizar o aprendizado de acordo com o conteúdo apresentado.
  • A abordagem correta garantirá um melhor entendimento da programação orientada a objetos.

Métodos em Programação Orientada a Objetos

Visão geral da seção: Nesta seção, são introduzidos os métodos em programação orientada a objetos e como eles serão aplicados no exercício proposto.

  • Será desenvolvido um método chamado "apresentaLutador" para mostrar as informações do lutador.
  • Outro método chamado "mostraStatus" será criado para exibir o status do lutador durante uma luta.
  • Esses métodos são exemplos de abstração na programação orientada a objetos, onde apenas as características relevantes são consideradas.

Abstração em Programação Orientada a Objetos

Visão geral da seção: Nesta seção, é explicado o conceito de abstração na programação orientada a objetos e sua importância no exercício proposto.

  • Abstrair significa considerar apenas aquilo que é relevante para um determinado exercício ou momento de programação.
  • No contexto do exercício, os atributos e métodos relacionados à luta são os mais importantes.
  • Adicionar atributos ou métodos adicionais é opcional, desde que sejam relevantes para a situação.

Desenvolvimento do Diagrama de Classe

Visão geral da seção: Nesta seção, é explicado que o objetivo é desenvolver um diagrama de classe prático durante a aula de algoritmos. O exercício será implementado posteriormente em Java e PHP.

  • Durante a aula, serão definidos os métodos com visibilidade pública.
  • Os getters e setters não foram incluídos no diagrama para evitar tornar o programa muito extenso.
  • É importante entender os conceitos dos métodos especiais (getters e setters) para seguir o curso corretamente.

Apresentação dos Lutadores

Visão geral da seção: Nesta seção, são apresentados os lutadores que farão parte do exercício proposto. Suas características e categorias são destacadas.

  • Foram selecionados seis lutadores para o exercício.
  • Existem três categorias: peso leve, peso médio e peso pesado.
  • Cada categoria possui dois lutadores representantes.
  • As informações sobre nome, nacionalidade, idade, altura, peso e histórico de lutas são fornecidas para cada lutador.

Playboy - Lutador Peso Leve

Visão geral da seção: Nesta seção, são apresentadas as características do lutador "Playboy", que pertence à categoria de peso leve.

  • Nome: Playboy
  • Nacionalidade: Francesa
  • Idade: 31 anos
  • Altura: 1,75 metros
  • Peso: 68,9 kg
  • Histórico de lutas: 11 vitórias, 2 derrotas e 1 empate

Puto Scraps - Lutador Peso Leve

Visão geral da seção: Nesta seção, são apresentadas as características do lutador "Puto Scraps", também pertencente à categoria de peso leve.

  • Nome: Puto Scraps
  • Nacionalidade: Brasileira
  • Idade: 29 anos
  • Altura: 1,68 metros
  • Peso: 57,8 kg
  • Histórico de lutas: 14 vitórias, 2 derrotas e 3 empates

Inep Xandão - Lutador Peso Médio

Visão geral da seção: Nesta seção, são apresentadas as características do lutador "Inep Xandão", que pertence à categoria de peso médio.

  • Nome: Inep Xandão
  • Nacionalidade: Estados Unidos
  • Idade: 35 anos
  • Altura: 1,65 metros
  • Peso: 80,9 kg
  • Histórico de lutas: 12 vitórias, 2 derrotas e 1 empate

Uso Futebol - Lutador Pesado

Visão geral da seção: Nesta seção, são apresentadas as características do lutador "Uso Futebol", que pertence à categoria de peso pesado.

  • Nome: Uso Futebol
  • Nacionalidade: Brasileiro
  • Idade: 37 anos
  • Altura: 1,70 metros
  • Peso: 119,3 kg
  • Histórico de lutas: 5 vitórias, 4 derrotas e 3 empates

Nerd - Lutador Pesado

Visão geral da seção: Nesta seção, são apresentadas as características do lutador "Nerd", também pertencente à categoria de peso pesado.

  • Nome: Nerd
  • Nacionalidade: Estados Unidos
  • Idade: 30 anos
  • Altura: 1,81 metros
  • Peso: 105,7 kg
  • Histórico de lutas: 12 vitórias, 2 derrotas e 4 empates

Introdução ao código da classe

Visão geral da seção: Nesta seção, o instrutor introduz o diagrama de classes e começa a criar o código da classe. Ele define os atributos da classe, como nome, nacionalidade, altura, peso, categoria, vitórias, derrotas e empates.

  • O instrutor explica que todos os atributos serão privados porque a classe estará encapsulada.
  • Os atributos são definidos com seus respectivos tipos de dados (caractere ou inteiro) e visibilidade privada.
  • Os atributos incluem nome, nacionalidade, idade, altura, peso e categoria.
  • A categoria é determinada automaticamente com base no peso do lutador.

Métodos da classe

Visão geral da seção: Nesta seção, o instrutor discute os métodos que serão implementados na classe.

  • Os métodos incluem apresentar (para mostrar informações sobre o lutador), status (para exibir o status atual do lutador), ganhar luta (para registrar uma vitória), perder luta (para registrar uma derrota) e empatar luta (para registrar um empate).
  • Todos os métodos são definidos como públicos.

Construção dos atributos

Visão geral da seção: Nesta seção, o instrutor conclui a definição dos atributos da classe.

  • Os atributos foram definidos com seus respectivos tipos de dados e visibilidade privada.
  • Os atributos incluem nome, nacionalidade, idade, altura, peso e categoria.
  • Atributos como vitórias, derrotas e empates são do tipo inteiro.

Método construtor

Visão geral da seção: Nesta seção, o instrutor começa a implementar o método construtor da classe.

  • O método construtor receberá parâmetros para inicializar os atributos do lutador.
  • Os parâmetros incluem nome, nacionalidade, idade, altura, peso, vitórias, derrotas e empates.
  • A categoria será determinada automaticamente com base no peso do lutador.

Implementação do método construtor

Visão geral da seção: Nesta seção, o instrutor continua a implementação do método construtor da classe.

  • Os parâmetros recebidos pelo método construtor são atribuídos aos respectivos atributos da classe.
  • A categoria é definida automaticamente com base no peso do lutador.

Uso de métodos setters e getters

Visão geral da seção: Nesta seção, o instrutor discute a diferença entre usar métodos setters e fazer atribuições diretas aos atributos.

  • É possível usar tanto métodos setters quanto fazer atribuições diretas aos atributos dentro da classe.
  • O instrutor menciona que prefere chamar diretamente os métodos setters para garantir encapsulamento dos atributos privados.

Atributos e Métodos

Visão Geral da Seção: Nesta seção, o palestrante discute os atributos e métodos de uma classe em programação.

Definição dos Atributos

  • Os atributos importantes são nome, peso e categoria.
  • O método getNome() retorna o nome do lutador.
  • O método setNome() define o nome do lutador.
  • O método getPeso() retorna o peso do lutador.
  • O método setPeso() define o peso do lutador.

Definição da Categoria

  • A categoria é definida com base no peso do lutador.
  • As categorias são: leve, médio, pesado ou inválido.
  • O método setCategoria() define a categoria com base no peso.

Método Ganhar Luta

  • O método ganharLuta() atualiza o número de vitórias do lutador.

Método Perder Luta

  • O método perderLuta() atualiza o número de derrotas do lutador.

Método Empatar Luta

  • O método empatarLuta() atualiza o número de empates do lutador.

Criando Métodos para Vitórias, Derrotas e Empates

Visão geral da seção: Nesta seção, o palestrante discute a criação de métodos para registrar vitórias, derrotas e empates em um programa.

Criando método para vitórias

  • O método ganharLuta é criado para adicionar uma vitória ao lutador.
  • O número de vitórias é incrementado em 1.
  • Exemplo: lutador.ganharLuta()

Criando método para derrotas

  • O método perderLuta é criado para adicionar uma derrota ao lutador.
  • O número de derrotas é incrementado em 1.
  • Exemplo: lutador.perderLuta()

Criando método para empates

  • O método empatarLuta é criado para adicionar um empate ao lutador.
  • O número de empates é incrementado em 1.
  • Exemplo: lutador.empatarLuta()

Apresentação e Status do Lutador

Visão geral da seção: Nesta seção, o palestrante aborda os métodos de apresentação e status do lutador.

Método de apresentação do lutador

  • Utiliza-se o método apresentar para exibir informações sobre o lutador, como nome, nacionalidade, idade, altura e peso.
  • Exemplo: lutador.apresentar()

Método de status do lutador

  • Utiliza-se o método status para exibir informações resumidas sobre o lutador, como nome, peso e registro de lutas (vitórias, derrotas e empates).
  • Exemplo: lutador.status()

Programa Principal e Criação de Lutadores

Visão geral da seção: Nesta seção, o palestrante discute a criação do programa principal e a criação dos lutadores.

Criando vetor de lutadores

  • Em vez de criar variáveis individuais para cada lutador, utiliza-se um vetor de seis posições para armazenar os lutadores.
  • Exemplo: lutadores = [l1, l2, l3, l4, l5, l6]

Definindo os lutadores

  • Utiliza-se o construtor da classe Lutador para definir as características de cada lutador.
  • Exemplo: l0 = Lutador("Playboy", "França", 31, 1.75, 68.9)

Chamando métodos dos lutadores

  • Após definir os lutadores, é possível chamar os métodos criados anteriormente para registrar vitórias, derrotas e empates.
  • Exemplo: l0.ganharLuta(), l1.perderLuta(), l2.empatarLuta()

Vetor de Lutadores e Índices

Visão geral da seção: Nesta seção, o palestrante aborda o uso do vetor de lutadores e a definição dos índices.

Uso do vetor de lutadores

  • O vetor de lutadores permite acessar cada lutador por meio do seu índice no vetor.
  • Exemplo: lutadores representa o primeiro lutador.

Definição dos índices

  • Os índices do vetor de lutadores começam em 0 nas linguagens Java e PHP.
  • Exemplo: lutadores representa o primeiro lutador.

Criação de Lutadores com Vetor

Visão geral da seção: Nesta seção, o palestrante demonstra como criar os lutadores utilizando um vetor.

Utilizando um vetor para criar os lutadores

  • Em vez de criar variáveis individuais para cada lutador, utiliza-se um vetor para armazenar os objetos lutador.
  • Exemplo: lutadores = [Lutador("Playboy", "França", 31, 1.75, 68.9), Lutador("Pudim", "Brasil", 29, 1.68, 57.8)]

Chamando métodos dos lutadores criados com vetor

  • Após definir os lutadores utilizando um vetor, é possível chamar os métodos dos objetos individualmente.
  • Exemplo: lutadores.ganharLuta(), lutadores.perderLuta()

Definindo Características dos Lutadores

Visão geral da seção: Nesta seção, o palestrante define as características dos lutadores utilizando o construtor da classe.

Definindo características do primeiro lutador

  • Utiliza-se o construtor da classe Lutador para definir as características do primeiro lutador.
  • Exemplo: l= Lutador("Playboy", "França", 31, 1.75, 68.9)

Definindo características dos demais lutadores

  • Repete-se o processo de utilizar o construtor da classe Lutador para definir as características dos demais lutadores.
  • Exemplo: l= Lutador("Pudim", "Brasil", 29, 1.68, 57.8)

Finalizando a Criação dos Lutadores

Visão geral da seção: Nesta seção, o palestrante finaliza a criação dos lutadores e destaca a importância de definir cada objeto individualmente.

Finalizando a criação dos lutadores

  • Após definir todas as características dos lutadores utilizando o construtor da classe, os objetos estão prontos para serem utilizados no programa.
  • Exemplo: `lutadores = [l0, l

Construção da classe Lutador

Visão geral da seção: Nesta seção, foi feita a construção da classe "Lutador" com seus atributos e métodos. A visibilidade de cada método foi definida.

Classe Lutador

  • A classe "Lutador" foi montada com todos os atributos e métodos necessários.
  • Os atributos e métodos foram definidos com a visibilidade adequada.
  • Agora é possível utilizar os atributos e métodos da classe "Lutador" para criar lutas.

Classe Luta

Visão geral da seção: Nesta seção, é introduzida a classe "Luta", que representa uma luta entre lutadores. São apresentados os atributos dessa classe e sua relação com a classe "Lutador".

Classe Luta

  • A classe "Luta" é criada para representar uma luta entre lutadores.
  • Os atributos da classe "Luta" são: desafiado, desafiante, quantidade de rounds e aprovação.
  • A relação entre as classes "Lutador" e "Luta" é explicada como uma relação de agregação.
  • Será ensinado na próxima aula como fazer essa ligação entre as classes.

Visibilidade dos atributos e métodos da classe Luta

Visão geral da seção: Nesta seção, é explicada a visibilidade dos atributos e métodos da classe "Luta". Também são mencionados os métodos principais dessa classe.

Visibilidade dos atributos e métodos

  • Todos os atributos da classe "Luta" são privados, encapsulando-os.
  • Os métodos principais da classe "Luta" são: marcar uma luta e lutar.
  • Esses métodos têm visibilidade pública, fazendo parte da interface principal da classe.

Relação entre as classes Lutador e Luta

Visão geral da seção: Nesta seção, é explicada a relação entre as classes "Lutador" e "Luta". É mencionada a existência de uma ligação entre elas e é dada uma prévia sobre como essa relação será representada.

Relação entre as classes

  • Existe uma relação de agregação entre a classe "Lutador" e a classe "Luta".
  • Um lutador disputa uma luta.
  • Será explicado melhor na próxima aula como essa relação será representada.

Próximas aulas e escolha da linguagem

Visão geral da seção: Nesta seção, é mencionado que nas próximas aulas serão abordadas as relações entre as classes. Também é dada a opção de escolher qual linguagem (PHP ou Java) será utilizada durante o curso.

Próximas aulas e escolha da linguagem

  • Nas próximas aulas teóricas, será ensinado como fazer as classes interagirem.
  • Será mostrado como fazer a classe "Lutador" se relacionar com outras classes.
  • Agora é o momento de escolher qual linguagem (PHP ou Java) você deseja aprender para aplicar os conceitos apresentados no curso.

Agradecimentos aos patrocinadores

Visão geral da seção: Nesta seção, é feito um agradecimento aos patrocinadores do curso e é mencionado que o curso só é possível graças a eles.

Agradecimentos aos patrocinadores

  • Os patrocinadores são essenciais para viabilizar a qualidade do curso.
  • São exibidas mensagens dos patrocinadores durante as aulas.
  • É importante reconhecer o apoio dos patrocinadores e valorizar sua contribuição.

Importância dos anúncios e interatividade

Visão geral da seção: Nesta seção, é ressaltada a importância dos anúncios e da interatividade para manter o curso gratuito e de qualidade.

Importância dos anúncios e interatividade

  • Os anúncios exibidos durante as aulas não atrapalham o aprendizado, pois são fundamentais para financiar o curso.
  • Sem os patrocinadores e anúncios, não seria possível oferecer um curso gratuito com essa qualidade.
  • A interatividade permite acessar facilmente as diferentes partes do curso através das playlists.

Encerramento da aula

Visão geral da seção: Nesta seção, é feito o encerramento da aula com uma mensagem de agradecimento aos patrocinadores e ao esforço realizado para disponibilizar o conteúdo do curso gratuitamente.

Encerramento da aula

  • Obrigado aos patrocinadores por tornarem esse curso possível.
  • O esforço em disponibilizar o conteúdo gratuitamente é valorizado.
  • A próxima aula já está disponível para acesso.
Video description

Nessa aula de POO, vamos aprender como fazer relacionamentos entre as classes. Gostou da aula? Então torne-se um Gafanhoto APOIADOR do CursoemVídeo acessando o site apoie.me/cursoemvideo Aula do Curso de Programação Orientada a Objetos POO criado pelo professor Gustavo Guanabara para o portal CursoemVideo.com. Curso em Vídeo Seja um apoiador: http://apoie.me/cursoemvideo Site: http://www.cursoemvideo.com YouTube: http://www.youtube.com/cursoemvideo Facebook: http://www.facebook.com/cursosemvideo Twitter: http://twitter.com/cursosemvideo Google+: http://plus.google.com/112666558837414979080 Patrocínio HOSTNET: http://www.hostnet.com.br EDUCANDUS: http://www.sistemaeducandus.com.br GAFANHOTOS: http://apoie.me/cursoemvideo Ask Rufus de Audionautix está licenciada sob uma licença Creative Commons Attribution (https://creativecommons.org/licenses/by/4.0/) Artista: http://audionautix.com/