Anteprima
Vedrai una selezione di 10 pagine su 42
Spiegazione delle istruzioni e comandi principali di JAVA Pag. 1 Spiegazione delle istruzioni e comandi principali di JAVA Pag. 2
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Spiegazione delle istruzioni e comandi principali di JAVA Pag. 6
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Spiegazione delle istruzioni e comandi principali di JAVA Pag. 11
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Spiegazione delle istruzioni e comandi principali di JAVA Pag. 16
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Spiegazione delle istruzioni e comandi principali di JAVA Pag. 21
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Spiegazione delle istruzioni e comandi principali di JAVA Pag. 26
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Spiegazione delle istruzioni e comandi principali di JAVA Pag. 31
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Spiegazione delle istruzioni e comandi principali di JAVA Pag. 36
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Spiegazione delle istruzioni e comandi principali di JAVA Pag. 41
1 su 42
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Felino

1508 }

1509

1510 public Gatto(String nome){ //Costruttore 2

1511 super(nome); //super invoca il costruttore 2 di Felino

1512 }

1513

1514 public void verso(){ //Definisco il metodo verso(), non e’ piu’

astratto

1515 System.out.println("Miao");

1516 }

1517 }

1518

1519 //Classe derivata 2.2

1520 public class Leone extends Felino{

1521

1522 public Leone(){

1523 super();

1524 }

1525

1526 public Leone(String nome){

1527 super(nome);

1528 } 14/12/22, 16:00 :: page 27

jEdit − ISTRUZIONI.java

1529

1530 public void verso(){

1531 System.out.println("Roar");

1532 }

1533 }

1534

1535

1536

1537

1538

1539

1540

1541

1542 /** INTERFACCE **/

1543

1544 /* L’interfaccia e’ una componente di un programma che contiene delle

istruzioni

1545 che lo "schematizzano". Puo’ contenere costanti pubbliche e metodi(senza

corpo).

1546 L’interfaccia viene creata in un file con lo stesso nome come per le classi ma

al posto

1547 della parola class c’e’ la parola "interface". */

1548

1549 //Esempio: interfaccia che contiene i metodi che calcolano e restituiscono

l’area e il perimetro di un oggetto

1550 public interface Misuarabile{

1551

1552 public double getPerimetro();

1553 public double getArea();

1554 }

1555

1556 /* Una classe che implementa un’interfaccia deve definire un corpo per ogni

metodo

1557 specificato nell’interfaccia. Se non definisce il corpo di tutti i metodi deve

essere

1558 dichiarata astratta.

1559 Per implementare un’interfaccia, va scritto nella dichiarazione della classe

la parola

1560 chiave "implements" e il nome dell’interfaccia.

1561 Una classe puo’ implementare piu’ di un’interfaccia e l’interfaccia puo’

essere implementata

1562 da piu’ classi. */

1563

1564 //Esempio:

1565 public class Quadrato implements Misurabile{

1566 private double lato;

1567

1568 public Quadrato(double lato){

1569 this.lato = lato;

1570 }

1571

1572 public double getArea(){

1573 return lato * lato;

1574 }

1575

1576 public double getPerimetro(){

1577 return lato * 4;

1578 }

1579 }

1580

1581

1582 /* Come per la classe anche un’interfaccia e’ un tipo riferimento. Un oggetto

di

1583 tipo interfaccia puo’ invocare solo i metodi definiti nell’interfaccia. */

14/12/22, 16:00 :: page 28

jEdit − ISTRUZIONI.java

1584

1585 //Esempio:

1586 public static void visualizza(Misurabile figura){ //Passo un parametro

figura di tipo interfaccia Misurabile

1587 double perimetro = figura.getPerimetro();

1588 double area = figura.getArea();

1589 System.out.println("Perimetro: " + perimetro + "Area: " + area);

1590

1591

1592 /* E’ possibile definire una nuova interfaccia che estende un’interfaccia gia’

esistente

1593 utilizzando una sorta di ereditarieta’. Si puo’ quindi creare un ’interfaccia

formata da un insieme

1594 di metodi: quelli da lei definiti e quelli ereditati. */

1595

1596

1597

1598

1599

1600

1601

1602

1603 /** LISTE (fatte male e incomplete) **/

1604

1605 /* Una lista e’ una struttura dati dinamica che consiste in blocchi di dati

concatenati.

1606 Gli elementi della lista sono chiamati NODI, in una parte del nodo sono

contenuti i dati

1607 nell’altra invece e’ contenuto il COLLEGAMENTO ad un altro nodo.

1608 In Java i nodi sono realizzati come oggetti di una classe nodo mentre i

collegamenti sono

1609 realizzati sotto forma di riferimenti a un altro nodo, cioe’ come variabili

d’istanza del

1610 tipo del nodo.

1611 Il collegamento TESTA non e’ nella lista dei nodi, infatti non e’ un nodo ma

solo

1612 un collegamento che punta al primo nodo.

1613 Si indica la fine di una lista impostando a NULL la variabile d’istanza

collegamento

1614 dell’ultimo nodo, per controllare se una variabile contiene null si usa

l’operatore "==". */

1615

1616 //Esempio

1617 TESTA

1618 COLLEGAMENTO:NODO1

1619 |

1620 v

1621 NODO1 NODO2 NODO3

1622 DATI: Giovanni DATI: Marco DATI: LUCA

1623 COLLEGAMENTO: NODO2 −> COLLEGAMENTO: NODO3 −> COLLEGAMENTO: NULL

1624

1625

1626 //Esempio: Classe che rappresenta i nodi di una lista

1627 public class NodoLista {

1628 private String dati;

1629 private NodoLista collegamento; //la variabile d’istanza "collegamento" e’

di tipo classe NodoLista

1630

1631 public NodoLista(){ //Costruttore di default

1632 collegamento = null;

1633 dati = null;

1634 }

1635 14/12/22, 16:00 :: page 29

jEdit − ISTRUZIONI.java

1636 public NodoLista(String valoreDati, NodoLista valoreCollegamento) {

//Costruttore 2

1637 dati = valoreDati;

1638 collegamento = valoreCollegamento; //la variabile

"valoreCollegamento" e’ di tipo classe NodoLista e contiene il riferimento

al nodo successivo

1639 }

1640

1641 public void setDati(String nuoviDati) {

1642 dati = nuoviDati;

1643 }

1644

1645 public String getDati() {

1646 return dati;

1647 }

1648

1649 public void setCollegamento(NodoLista nuovoCollegamento) {

1650 collegamento = nuovoCollegamento;

1651 }

1652

1653 public NodoLista getCollegamento() {

1654 return collegamento;

1655 }

1656 }

1657

1658 /* In una lista e’ possibile effettuare diverse operazioni come inserire,

modificare o

1659 eliminare un elemento, verifare se la lista e’ vuota, verificare la

lunghezza...

1660 In una classe che rappresenta una lista concatenata si hanno quindi i seguenti

metodi:

1661

1662 − una variabile d’istanza "testa" di tipo NodoLista che contiente il

riferimento

1663 al primo nodo.

1664

1665 − un costruttore di default che imposta a null la variabile testa nel caso in

cui

1666 la lista sia vuota.

1667

1668 − un metodo aggiungiNodoInTesta che aggiunge un nodo all’inizio della lista

concatenata

1669 cosi’ che il nuovo nodo diventi il primo della lista. Per farlo viene

assegnato un nuovo

1670 nodo alla variabile testa e per collegare il nuovo nodo al resto della lista

si assegna

1671 alla variabile d’istanza "collegamento" del nuovo nodo il riferimento al

primo.

1672 Il costruttore assegna alla variabile d’istanza "posizione" del nuovo nodo,

il vecchio

1673 primo nodo referenziato da "testa".

1674

1675 − un metodo eliminaNodoInTesta che rimuove il primo nodo della lista

concatenata e fa si

1676 che la variabile "testa" faccia riferimento a quello che prima era il

secondo nodo.

1677

1678 − un metodo mostraLista che stampa a schermo il contenuto di tutti i nodi, per

farlo

1679 viene inizializzata una variabile d’istanza "posizione" di tipo NodoLista

che contiene

1680 un riferimento a un nodo ed inizialmente contiene lo stesso riferimento

della variabile 14/12/22, 16:00 :: page 30

jEdit − ISTRUZIONI.java

1681 testa per posizionarsi sul primo nodo. Tramite un ciclo while, dopo aver

visualizzato

1682 i dati contenuti in un nodo, il riferimento contenuto in "posizione" passa

da un nodo al successivo.

1683 Quando si arriva al valore di posizione == null, il ciclo while termina.

1684

1685 − un metodo lunghezza che conta il nomero di nodi della lista.

1686

1687 − un metodo nellaLista per cercare un elemento nella lista. */

1688

1689

1690 //Esempio: classe di una lista concatenata che utilizza la classe NodoLista

1691 public class ListaConcatenataDiStringhe {

1692 private NodoLista testa;

1693

1694 public ListaConcatenataDiStringhe(){ //Costruttore di default

1695 testa = null;

1696 }

1697

1698 public void aggiungiNodoInTesta(String datiDaAggiungere) { //Metodo che

aggiunge un nodo in cima alla lista

1699 testa = new NodoLista(datiDaAggiungere, testa);

1700 }

1701

1702 public void mostraLista() { //Metodo che stampa i dati della

lista

1703 NodoLista posizione = testa; //Inizializzo la variabile

posizione che ha contiente lo stesso riferimento di testa

1704 while (posizione != null) { //controllo che il collegamento di

posizione non sia null, se e’ null termina il ciclo

1705 System.out.println(posizione.getDati()); //stampo i dati di

posizione

1706 posizione = posizione.getCollegamento(); //pongo posizione uguale

al valore che ha il suo collegamento, ovvero il nodo successivo

1707 }

1708 }

1709

1710 public int lunghezza() { //Metodo che conta i nodi della lista

(simile a mostraLista)

1711 int conteggio = 0;

1712 NodoLista posizione = testa;

1713 while (posizione != null) {

1714 conteggio++;

1715 posizione = posizione.getCollegamento();

1716 }

1717 return conteggio;

1718 }

1719

1720 public void eliminaNodoDiTesta() { //Metodo per eliminare il nodo in

cima alla lista

1721 if (testa != null) //controllo che la lista non sia vuota

1722 testa = testa.getCollegamento(); //testa si collega al nodo

a cui era collegato il primo nodo (ovvero al secondo)

1723 else {

1724 System.out.println("Si sta eliminando da una lista vuota");

1725 System.exit(0);

1726 }

1727 }

1728

1729 public boolean nellaLista(String elemento) {

1730 return trova(elemento) != null;

1731 }

1732

1733 private NodoLista trova(String elemento) {

14/12/22, 16:00 :: page 31

jEdit − ISTRUZIONI.java

1734 boolean trovato = false;

1735 NodoLista posizione = testa;

1736 while ((posizione != null) && !trovato) {

1737 String datiAllaPosizione = posizione.getDati();

1738 if (datiAllaPosizione.equals(elemento))

1739 trovato = true;

1740 else

1741 posizione = posizione.getCollegamento();

1742 }

1743 return posizione;

1744 }

1745 }

1746

1747 //Esempio: classe Test

1748 public class ListaConcatenataDiStringheDemo {

1749 public static void main(String[] args) {

1750

1751 ListaConcatenataDiStringhe lista = new ListaConcatenataDiStringhe();

1752

1753 lista.aggiungiNodoInTesta("Uno");

1754 lista.aggiungiNodoInTesta("Due");

1755 lista.aggiungiNodoInTesta("Tre");

1756

1757 System.out.println("La lista ha " + lista.lunghezza() + " elementi.");

1758

1759 lista.mostraLista();

1760

1761 if (lista.nellaLista("Tre"))

1

Dettagli
Publisher
A.A. 2023-2024
42 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher gianlu15 di informazioni apprese con la frequenza delle lezioni di Programmazione java e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bologna o del prof Amadini Roberto.