Ir ao conteúdo
  • Cadastre-se

Java Exercício em Java - Como Fazer o Vetor


Posts recomendados

Boa noite, pessoal!

 

Estou fazendo um exercício básico de Java e estou com uma dúvida.

 

O enunciado é este: Faça o código em JAVA com a estrutura de classes do diagrama UML (Faça uso do encapsulamento, herança e polimorfismo), e uma classe ExeJava com o método main() que execute da forma abaixo:

 

[1] - Alunos

[2] - Professores

[3] - Disciplinas

[4] - Vincular Alunos

[5] - Fechar Semestre

Digite uma opção [1-4] ou 0 para sair:

 

Dúvida: Na classe disciplina, no vetor alunos[] : Aluno, como coloco isso na linguagem Java?

Preciso fazer alguma outra coisa na classe aluno ou na classe ExeJava?

 

print.png.1e2458663a26cf51c4369b356e72aedf.png

Link para o comentário
Compartilhar em outros sites

Boa noite, @Vinícius Nóbrega

 

Você pode tratar como listas, você já estudou a respeito? Basicamente, a ideia é criar uma lista onde você irá inserir uma quantidade X de objetos, onde esta lista seria atributos das classes que possuem vetores. A sintaxe, pelo que me lembre, é essa aqui:

 

List<Objeto> lista = new ArrayList<Objeto>();

Onde Objeto, seria a classe que você gostaria de armazenar em formato de lista (Aluno por exemplo).

 

Para adicionar novos objetos nessa lista, você usa o método add, conforme exemplo abaixo:

 

Aluno a = new Aluno();

lista.add(a);

Aconselho você dar uma estudada com mais calma a respeito, pois é um conceito importante. Tente dar uma olhada nesse vídeo aqui, pode lhe ser útil. Se as dúvidas continuarem, é só postar.

 

Bons estudos.

Link para o comentário
Compartilhar em outros sites

@Vinícius Nóbrega Olá. Creio q seria isso q você precisa fazer:

Aluno[] alunos = new Aluno[5]; // aqui você define a quantidade de alunos

Seria interessante criar uma constante para definir a quantidade de alunos:

private static final int MAX_ALUNOS = 5;

E aí sim cria o vetor de alunos dessa forma:

Aluno[] alunos = new Aluno[MAX_ALUNOS];

@XenoStory  apresentou uma forma de resolver a questão, mas é importante seguir a risca o q foi passado no diagrama UML, que seria um vetor do tipo Aluno

OBS: Esse vetor de alunos está sendo pedido na classe abstrata Disciplina e na classe ExeJava

 

Na classe Aluno seria os atributos matricula (int) e aprovado (boolean)

Link para o comentário
Compartilhar em outros sites

@Vinícius Nóbrega Olá. Na classe Disciplina está sendo pedido um vetor de alunos (Aluno), um vetor de media (double) e um vetor de notas (double)

Para um vetor de media e notas seria a mesma sintaxe:

double[] media = new double[5]; // aqui também define a quantidade de médias, q seria uma media p cada aluno

// e notas

double[] notas = new double[5];

Apenas para deixar você mais familiarizado com vetores (ou array) em Java, vou passar um pequeno exemplo:


public class Aplicacao {

    public static void main(String[] args) {

        printArray(isArray());

    }

    private static int[] isArray() {

        int teste[] = new int[5];
        for (int i = 0; i < teste.length; i++) {
            teste[i] = (int) (1 + (Math.random() * 60));
        }
        return teste; // aqui estou retornando um vetor (array) de inteiros
    }

    
    private static void printArray(int[] array) {
        for (int i : array) {
            System.out.print(i + ", ");
        }
    }

}

Seria o que passei acima q você se referiu a "todas as 3 linhas"?

 

Na classe Disciplina seriam esses os atributos:

private String nome;
private Aluno[] alunos = new Aluno[5]; // definir o tamanho
private Professor professor;
private double[] media = new double[5]; // definir o tamanho
private double[] notas = new double[5]; // definir o tamanho

Putz! Q desafio esse! rs...

@XenoStory se tiver dicas ou mesmo correções fique a vontade para postar

Vamos ver se a gente detona esse diagrama  hehe

Link para o comentário
Compartilhar em outros sites

@giu_d , me parece correta a estruturação da classe, só o @Vinícius Nóbrega seguir a mesma ideia para as outras classes e tudo deve funcionar conforme o diagrama.

 

Só um adendo, se caso um dia precisar trabalhar com uma lista de objetos, onde não seja obrigatório o uso de vetor/matriz, aconselho o uso do List, que comentei anteriormente, pois com ele não é necessário alocar o tamanho da memória que será dedicado àquele vetor, diferente do array. Em outras palavras, você não precisa colocar uma constante ou valor fixo para o array, pois ele é dimensionado de forma dinâmica, tornando-se muito mais prático, evitando o problema de atingir o limite de memória do array.

 

Qualquer dúvida, é só falar.

 

Bons estudos.

Link para o comentário
Compartilhar em outros sites

@giu_d e @XenoStory você estão ajudando demais.

Antes de mandar as coisas que fiz com base no que vocês estão falando, queria tirar outra dúvida.

No caso do método calcularMedia, esse método está em 3 classes. Disciplina, prátiva e teórica.

Em qual dessas classes faço a conta da média mesmo? Faço na classe disciplina mesmo?

E por que tem esse calcularMedia nas outras duas classes?

Depois das perguntas anteriores, como faço para que as outras duas classes façam essa comunicação?

Espero que as perguntas estejam claras.

Link para o comentário
Compartilhar em outros sites

Bom dia, @Vinícius Nóbrega

 

Conforme o diagrama, é de responsabilidade das classes filhas (Teórica e Prática) implementar o método de cálculo de média, onde cada classe filha possui uma implementação diferente desse método. Você deve declarar esse método, na classe pai de forma abstrata, e implementar nas classes filhas. Já estudou esses conceitos? Se não, dá uma lida nesse link aqui.

 

A ideia é de cada classe filha implementar o método calcularMedia() da sua forma, conforme o diagrama.

 

Qualquer dúvida, é só falar.

 

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!