Preciso de ajuda com esse problema em Java

  1. Criar uma classe chamada Time, para armazenar internamente Hora, Minutos e Segundos.

Não permita atribuição direta e só aceitar valores válidos (0-23 ou 0-59)

Criar um método setTime para passar a hora, minuto e segundos de uma só vez

Implementar um método set e um get para cada atributo

Criar 2 construtores:

  • Sem nenhuma informação passada (o time padrão será 0:0:0)
  • Passando a hora, minutos e segundos iniciais

Criar um método que retorne uma string contendo uma hora no formato h:m:s

Crie dois objetos na classe principal, um utilizando o construtor sem nenhuma informação, e o outro passando a hora, minutos e segundos. Imprima em seguida os dados dos dois objetos utilizando o método que retorna a string com esses dados.

Que tipo de ajuda você precisa? Você só postou o enunciado. Mostre o que já fez e descreva as partes específicas nas quais está tendo dificuldade.

Abraço.

literalmente estou sem saber como começar TerraSkilll kkkkkkk

Você não sabe nem criar uma classe, com o nome solicitado? Pois é literalmente a primeira coisa pedida, seguida de 3 atributos:

public class Time{
  private int hora;
  private int minutos;
  private int segundos;

  // resto do conteúdo da classe vai aqui
}

Está fazendo algum curso? Se você está com dificuldade nesses conceitos, recomendo dar uma re-estudada no básico da linguagem: classes, atributos, construtores, getters e setters. Há toneladas de tutoriais por aí.

Abraço.

Estudo em casa mesmo, essa parte de criar a classe eu entendi, mas falo das atribuições mesmo que to perdido. Mas valeu pela ajuda!

1 curtida

Bb é normal ter duvida continue perguntando mesmo que seja besta e não pare continue.

1 curtida

O que você não está entendendo da parte de atribuições? É a isso que me refiro quando digo que é preciso que você diga quais as dificuldades específicas está tendo.

Por exemplo, após a criação da classe (como demonstrei acima), o execício pede 2 coisas em uma mesma frase:

  • não permita atribuição direta;
  • só aceitar valores válidos (0-23 ou 0-59)

Então, se você, por exemplo, não entendeu a primeira, uma pergunta melhor que você pode fazer é:

“Não entendi o que é atribuição direta, o que isso quer dizer?”

Daí sim podemos te responder melhor. Algo como:

  • atribuição direta é quando os atributos da instância de uma classe pode ter seus valores alterados diretamente por classes externas, sem usar métodos acessórios (setters, por exemplo). Você controla se os atributos podem ou não ter atribuição direta usando modificadores de acesso : private, protected e public.

No caso, se os atributos são públicos, dá pra fazer algo como:

class Time{
  public int hora;
}

public static void main(String[] args){
  Time umaHoraQualquer = new Time();
  umaHoraQualquer.hora = 10; // vai funcionar, pois o acesso é público
}

Isso acima é atribuição direta.

Agora, se o atributo é privado, você não consegue passar um valor diretamente:


class Time{
  private int hora;
}

public static void main(String[] args){
  Time umaHoraQualquer = new Time();
  umaHoraQualquer.hora = 10; // NÃO VAI funcionar, pois o acesso é privado, dará erro de compilação
}

Então você precisará de métodos de acesso (ex: set):

class Time{
  private int hora;

  public void setHora(int novaHora){
    this.hora = novaHora;
  }
}

public static void main(String[] args){
  Time umaHoraQualquer = new Time();
  umaHoraQualquer.setHora(10); // vai funcionar, usando o método set
}

Entendeu a ideia?

Com isso, quero reforçar 2 pontos importantes:

  • só postar o enunciado e dizer “não sei fazer nada” não nos ajuda a te dar uma resposta. O pessoal aqui é avesso à dar resposta pronta e completa, e mesmo com a resposta, não tem como garantir se você entendeu a solução. Você precisa mostrar o que fez e o que não entendeu como fazer, e ser o mais específico que puder quando estiver com dificuldades;
  • você precisa construir seu conhecimento em cima de conceitos, evitando pular etapas sempre que possível. Por ex., se você tem dificuldades em entender métodos de acesso, precisa focar nisso antes de ir para as próximas etapas. Não sei que materiais de estudo está usando, mas há bastante cursos e materiais por aí que cobrem relativamente bem esses conceitos. Veja se uns vídeos no Youtube ou mesmo livros ou cursos diferentes do que você está seguindo são mais efetivos.

Abraço.

Obrigado Livis, sempre seguindo firme!

Obrigado novamente amigo, eu entendi a lógica do exercício. Mas poo não está entrando na minha cabeça, vou pegar mais firme pra entender metodos e atributos!

Eu até fiz essa segunda de questão que sobre (0 a 23) e (0 a 59).

Fiz com condicional if, mas no final deu erro na hora de imprimir.

Obrigado pela ajuda!