Metodi statici. Dichiarazione e chiamata di metodi statici
|
|
|
- Rocco Tucci
- 8 anni fa
- Просмотров:
Транскрипт
1 Metodi statici Dichiarazione e chiamata di metodi statici
2 Cos è un metodo Un metodo è un blocco di istruzioni che fornisce una funzionalità e viene identificato con un nome Può avere dei parametri ed un valore di ritorno Esempi di metodi già visti: Math.pow(a, b); I parametri sono due double che rappresentano la base e l esponente dell operazione di elevamento a potenza. Ritorna un valore double contenente il risultato dell operazione. System.out.println(str); Il parametro è una stringa che contiene il messaggio da stampare. Non ritorna nessun valore. Lettore.in.leggiInt(); Metodo senza parametri. Il valore di ritorno è l intero letto da tastiera.
3 Dichiarazione di un metodo (1/2) La fase di dichiarazione serve per definire il metodo, specificando le istruzioni che deve eseguire. La dichiarazione va fatta una sola volta, dentro la classe ma fuori dagli altri metodi. [modificatori] tipo_di_ritorno nome_del_metodo([parametri]){ corpo_del_metodo modificatori: parole chiave che modificano le caratteristiche del metodo tipo_di_ritorno: tipo del valore restituito dal metodo (oppure void se il metodo non restituisce nessun valore) nome_del_metodo: identificatore del metodo parametri: lista di parametri separati da virgola. I parametri sono espressi specificandone il tipo ed il nome. corpo_del_metodo: insieme di statement da eseguire alla chiamata del metodo L istruzione return si utilizza per uscire dal metodo specificando il valore da ritornare. (Se la funzione non ha valore di ritorno può essere omessa)
4 Dichiarazione di un metodo (2/2) Esempio: dichiarazione del metodo statico calcfatt che ha come parametro un intero e ritorna un long contenente il fattoriale del parametro. public class Fattoriale { public static long calcfatt(int n){ long ris = 1; // conterrà il risultato for(int i=1; i<=n; i++){ ris *= i; return ris; Per evitare errori di programmazione, è bene utilizzare l istruzione return solo alla fine del corpo del metodo e non in mezzo al codice.
5 Chiamata di un metodo La chiamata (o invocazione) di un metodo avviene quando si desidera utilizzare il metodo nel programma. import fiji.io.lettore; public class Fattoriale { /* Inizio dichiarazione */ public static long calcfatt(int n){ long ris = 1;// conterrà il risultato for(int i = 1; i <= n; i++){ ris *= i; return ris; /* Fine dichiarazione */ public static void main(string[] args){ int num = Lettore.in.leggiInt(); long fatt = calcfatt(num);// Chiamata System.out.println("Il fattoriale di " + num + " è " + fatt);
6 Passaggio dei parametri Attenzione! Nel linguaggio java, il passaggio di parametri avviene per valore. Questo significa che i parametri nel metodo sono una copia degli argomenti della funzione che, quindi, non possono essere modificati. Esempio: public static void nonscambia(int x, int y){ System.out.println("x: " + x + " y: " + y); int tmp = x; x = y; y = tmp; System.out.println("x: " + x + " y: " + y); public static void main(string[] args) { int a = 10; int b = 5; Output: a: 10 b: 5 x: 10 y: 5 x: 5 y: 10 a: 10 b: 5 System.out.println("a: " + a + " b: " + b); nonscambia(a, b); System.out.println("a: " + a + " b: " + b);
7 Esercizio StringheUguali Scrivere un metodo uguali con la seguente intestazione: public static boolean uguali(string s, String t) che confronta due stringhe e ritorna true se sono uguali o false altrimenti. Successivamente, scrivere il metodo main che legge due stringhe da tastiera, le confronta usando il metodo uguali e stampa infine il risultato. Non usare il metodo equals della classe string, ma effettuare il confronto carattere per carattere.
8 import fiji.io.lettore; public class StringheUguali { Soluzione public static boolean uguali(string s, String t){ boolean eq = true; if(s.length() == t.length()){ for(int i = 0; i < s.length() && eq; i++){ if(s.charat(i)!= t.charat(i)){ eq = false; else{ eq = false; return eq; public static void main(string[] args) { String a, b; System.out.println("Inserisci due stringhe:"); a = Lettore.in.leggiString(); b = Lettore.in.leggiString(); if(uguali(a, b)){ System.out.println("Le stringhe sono uguali"); else{ System.out.println("Le stringhe sono diverse");
9 Esercizio Anagramma Scrivere un metodo con la seguente intestazione: public static boolean controllaanagram(string s, String t) che ritorni true se le stringhe s e t sono una l'anagramma dell'altra, cioè se esiste una permutazione dei caratteri della stringa s che porta ad ottenere esattamente la stringa t. L'esercizio è svolto introducendo un ulteriore metodo di appoggio con la seguente intestazione: public static int contaoccorrenze (String u, char ch) che restituisce il numero di occorrenze del carattere ch all'interno della stringa u fornita come primo parametro. Infine scrivere il metodo main dove si utilizza il metodo anagramma su due stringhe lette da tastiera.
10 Soluzione (1/3) import fiji.io.lettore; public class Anagramma { public static int contaoccorrenze(string u, char ch){ int conteggio = 0; for(int i = 0; i < u.length(); i++){ if(u.charat(i) == ch){ conteggio++; return conteggio;
11 Soluzione (2/3) public static boolean controllaanagram(string s, String t){ boolean anagram = true; if (s.length()!= t.length()){ anagram = false; else{ for(int i = 0; i < s.length() && anagram; i++){ char l = s.charat(i); int occos, occot; occos = contaoccorrenze(s, l); occot = contaoccorrenze(t, l); if(occos!= occot){ anagram = false; return anagram;
12 Soluzione (3/3) public static void main(string[] args) { System.out.println("Inserisci due stringhe:"); String s = Lettore.in.leggiString(); String t = Lettore.in.leggiString(); if(controllaanagram(s, t)){ System.out.println("Le stringhe sono una" + " l'anagramma dell'altra"); else{ System.out.println("Le stringhe non sono una" + " l'anagramma dell'altra");
13 Esercizio NumeroParole Scrivere un metodo contaparole con la seguente intestazione: public static int contaparole(string str) che ritorni il numero di parole presenti nella stringa data. Una parola è identificata da una sequenza di caratteri consecutivi diversi dallo spazio (carattere ' ') e dal tab (carattere '\t'). Scrivere poi il metodo main che legge due stringhe da tastiera e controlla se hanno lo stesso numero di parole, utilizzando il metodo contaparole precedentemente definito. Per leggere la stringa da tastiera usare il metodo Lettore.in.leggiLinea().
14 import fiji.io.lettore; public class NumeroParole { Soluzione (1/2) public static int contaparole(string str) { int numpar = 0; // Contatore delle parole trovate // Variabile che indica se si sta esaminando // una parola (true) o una sequenza di spazi (false) boolean parola = false; for(int i=0; i<str.length(); i++){ char ch = str.charat(i); // carattere corrente if(ch!= ' ' && ch!= '\t'){ // carattere di una parola if(!parola){ parola = true; // inizio una nuova parola numpar++; else{ // carattere spazio parola = false; return numpar;
15 Soluzione (2/2) public static void main(string[] args) { System.out.println("Inserisci due righe di testo"); String str1 = Lettore.in.leggiLinea(); String str2 = Lettore.in.leggiLinea(); int n1 = contaparole(str1); int n2 = contaparole(str2); if(n1==n2){ System.out.println("Le righe hanno lo stesso numero" + " di parole: " + n1); else{ System.out.println("Le righe hanno un numero diverso" + " di parole: " + n1 + " e " + n2);
Le Stringhe. Usare la classe java.lang.string
Le Stringhe Usare la classe java.lang.string Classe java.lang.string (1/4) La classe String mette a disposizione dei metodi per effettuare operazioni su stringhe (sequenze di caratteri). Un oggetto di
COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre Alcune Soluzioni
COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 10 Dicembre 2001 Alcune Soluzioni ESERCIZIO 1. Si consideri il seguente frammento di codice in linguaggio Java: int[][] a = new int[n][n]; for (int i
Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
Costrutti iterativi. Utilizzo dei costrutti iterativi
Costrutti iterativi Utilizzo dei costrutti iterativi Costrutti iterativi (1/3) I costrutti iterativi permettono di eseguire ripetutamente del codice Il linguaggio Java mette a disposizione tre costrutti
Costrutto if. Come utilizzare il costrutto condizionale if
Costrutto if Come utilizzare il costrutto condizionale if Costrutto if (1/2) Il costrutto if permette di effettuare azioni diverse a seconda del valore di una certa condizione booleana. if (condizione)
Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E06. C. Limongelli Dicembre 2011
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E06 C. Limongelli Dicembre 2011 1 Contenuti q Si vogliono formalizzare diverse tecniche per la risoluzione di problemi di: Accumulazione
Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E07. C. Limongelli Novembre 2007
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E07 Iterazione C. Limongelli Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Iterazione 1 Contenuti Si vogliono formalizzare
public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
Corso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Esercizi sui metodi Carla Limongelli Maggio 2010 Esercizi 1 Passaggio di parametri di tipo primitivo Indicare che cosa viene visualizzato sullo
Esempi di Problemi Iterativi
Corso di Laurea Ingegneria Civile Elementi di Informatica Esempi di Problemi Iterativi C. Limongelli Esempi di Problemi Iterativi 1 Contenuti Esercizi: Palindroma Anagramma Fibonacci Esempi di Problemi
STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe
STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe String Una stringa Java rappresenta uno specifico valore e come
Corso di Laurea Ingegneria Civile Elementi di Informatica. Esercizi. Carla Limongelli. Esercizi 1
Corso di Laurea Ingegneria Civile Elementi di Informatica Esercizi Carla Limongelli Esercizi 1 Quanti giorni in un mese? Scrivere un metodo che ricevuto in input un mese e un anno, restituisca il numero
Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:
Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata
Programmazione 1 A.A. 2015/2016
Cognome e Nome Matricola Programmazione 1 A.A. 2015/2016 Appello del 16 Dicembre 2015 Compito n 1 Prima parte Esercizio 1 (10 punti) Cosa stampa il seguente frammento di codice Java? int[] A = {3, 8, 91,
Le variabili. Olga Scotti
Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.
Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni
Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore
INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea
Le basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
/***************************** FILE: Quiz.java *****************************/ public class Quiz { private String text; private int score;
Soluzione esercizio [Quiz] a. Definizione della classe base e delle sottoclassi: /***************************** FILE: Quiz.java *****************************/ public class Quiz { private String text; private
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E03 Esempi di algoritmi e programmi A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di algoritmi e
Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; }
Java è un linguaggio di programmazione c indipendente dalla piattaforma, ovvero un linguaggio di programmazione che permette di compilare i programmi una volta sola e di installarli su computer che usano
3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso;
Un esempio di definizione di classe con array di oggetti Sia data la classe StudUniv per gli studenti universitari (definita in una lezione precedente). Scrivere una nuova classe Corso, dove ciascun corso
E17 Esercizi sugli Array in Java
E17 Esercizi sugli Array in Java Esercizio 1 (esercizio 9.1 del libro di testo). Implementare un metodo statico di nome stringacorta che prende come parametro un array di oggetti String e che restituisce
Programmazione Java Struttura di una classe, Costruttore, Riferimento this
Programmazione Java Struttura di una classe, Costruttore, Riferimento this [email protected] http://www.di.univaq.it/romina.eramo/tlp Roadmap > Struttura di una classe > Costruttore > Riferimento
Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario La ricorsione Metodi ricorsivi Esercizi proposti 16/01/2013 2 La ricorsione In Java ogni metodo può chiamare anche se stesso,
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
Algoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
