Fabio Donatantonio

Resta connesso

Software Developer / Adjunct Professor

Esercizio 21 – Serratura

Realizzare una classe per rappresentare una serratura con combinazione di 3 lettere maiuscole.
I metodi sono

  • void setPosition(String) // inserisce una lettera del codice
  • void reset() // azzera la combinazione inserita
  • void unlock() //apre la serratura se il codice passato è quello della serratura
  • boolean isOpen() // verifica se la serratura è aperta
  • void lock() // chiude la serratura
  • void newComb(String) // assegna la nuova combinazione se la serratura è aperta

Ecco la classe Serratura.java:

public class Serratura
{
  String codice;
  String codInserito = null;
  String verifica = null;

  // Metodo Costruttore inizializzato con codice di tre lettere
  public Serratura(String c)
  {
    int lung = c.length();
    if(lung==3 && c.equals(c.toUpperCase()))
    {
        codice = c;
    }
    else
    {
        // Lancia eccezione se il codice non è di 3 lettere
        throw new IllegalArgumentException("Codice non valido.");
    }
  }

  // Metodo che permette di inserire il codice, un carattere per volta
  public void setPosition(String uno ,String due, String tre)
  {
    String temp = uno+due;
    String temp1 = temp+tre;
    codInserito = temp1;
  }

  // Metodo che permette di aprire la serratura se il codice è esatto
  public void unlock()
  {
      if ( codInserito.equals(codice))
      {
          verifica = "APERTA";
          System.out.println("Serratura Aperta");
      }
      else
      {
          verifica = "CHIUSA";
          System.out.println("Serratura chiusa");
      }
  }

  // Metodo che verifica lo stato della serratura
  public String isOpen()
  {
    String isOp = null;
    if(verifica.equals("APERTA"))
    {
      isOp = "Serratura aperta";
    }
    else
    {
      isOp = "Serratura chiusa";
    }
    return isOp;
  }

  // Metodo che permette di chiudere la serratura
  public void lock()
  {
    verifica = "CHIUSA";
    codInserito = null;
  }

  // Metodo che permette di settare un nuovo codice di serratura
  public void newComb(String nc)
  {
    if(verifica.equals("APERTA"))
    {
      codice = nc;
      verifica = "CHIUSA";
    }
    else
    {
      System.out.println("Serratura chiusa. ACCESSO NEGATO.");
    }
  }
}

La classe di test:

import java.util.Scanner;
public class TestSerratura {

  public static void main(String[] args)
  {
    Scanner in = new Scanner (System.in);

    // Creo una nuova serratura
    Serratura s = new Serratura("TRE");

    // Prendo in input le 3 lettere del codice
    System.out.println("Inserisci prima lettera codice : ");
    String c = in.nextLine();
    System.out.println("inserisci seconda lettera codice : ");
    String c1 = in.nextLine();
    System.out.println("Inserisci terza lettare codice : ");
    String c2 = in.nextLine();
    s.setPosition(c,c1,c2);

    // Verifico se il codice apre la serratura
    s.unlock();

    // Verifico lo stato della serratura
    System.out.println("Lo stato della serratura è : " +s.isOpen());

    // Setto una nuova combinazione se la serratura è aperta
    s.newComb("REE");

    // Verifico il nuovo stato della serratura
    System.out.println(s.isOpen());
  }
}

Per ulteriori prove modificare il codice della serratura, modificando il valore in input al costruttore. Da notare anche il primo uso delle eccezioni.

Fabio Donatantonio

Fabio Donatantonio. Analista e sviluppatore full-stack di applicazioni web in linguaggio PHP. Professore a Contratto per le cattedre di Fondamenti di Informatica e Archivistica Digitale presso Università degli Studi eCampus. Dal 2008 curatore del sito www.donatantonio.net, da sempre appassionato di programmazione, mare, sigari e... musica.

Leave a reply

Your email address will not be published. Required fields are marked *

 

Didattica

Università degli Studi eCampus
Data Evento
09/02/2021
14:30
Esame Archivistica Digitale e Informatica per le Scienze Umane - Cds Letteratura, Lingua e Cultura Italiana - Lettere
09/02/2021
14:30
Esame Introduzione all'Archivistica Digitale e all'Informatica per le Scienze Umane - Cds Letteratura, Arte, Musica e Spettacolo - Lettere
09/02/2021
17:30
Esame Abilità Informatiche e Telematiche - Cds Design e Discipline della Moda - Lettere
09/02/2021
17:30
Esame Abilità Informatiche e Telematiche - Cds Letteratura, Arte, Musica e Spettacolo - Lettere
Risorse
Guida HTML/CSS per principianti (link)
Introduzione agli ipertesti (link)
Esercizi guidati in Java (link)
Intelligenza artificiale (link)
Libri
Fondamenti di Informatica (2011) (link)
Informatica per le Scienze Umane (2011) (link)
Fondamenti di Informatica (2014) (link)
Pagina Docente
uniecampus.it - Scheda Docente (link)
Contatti
fabio.donatantonio[at]uniecampus.it

JWhisper, sviluppato presso il Dipartimento di Informatica Applicata dell'Università degli Studi di Salerno:

Stay Connected

Twitter

Le mie foto

Foto di Fabio Donatantonio
×