Uso di metodi statici. Walter Didimo
|
|
|
- Romeo Corradi
- 9 anni fa
- Visualizzazioni
Transcript
1 Uso di metodi statici Walter Didimo
2 Metodi di istanza Fino ad ora abbiamo imparato a creare oggetti e ad invocare metodi su tali oggetti i metodi venivano eseguiti dagli oggetti un metodo invocato su un oggetto ed eseguito dall oggetto è chiamato metodo di istanza il termine metodo di istanza indica proprio che tale metodo va invocato sull istanza di una classe (cioè un oggetto)
3 Metodi statici In Java anche le classi possono offrire direttamente dei servizi: una classe può cioè definire dei metodi che essa stessa (non un suo oggetto) eseguirà tali metodi si chiamano metodi statici, o anche metodi di classe un metodo statico va invocato sulla classe l esecuzione del metodo non prevede la presenza di un oggetto
4 Riconoscere metodi statici Quando si deve usare una classe scritta da qualcuno, come si riconoscono i metodi statici da quelli di istanza? chi scrive una classe definisce i metodi statici usando una parola chiave del linguaggio Java, la parola static chi ha scritto la classe deve documentare che un metodo è statico mettendo la parola static davanti al prototipo del metodo
5 Esempio di metodi statici La classe String ha alcuni metodi statici, oltre ai metodi di istanza che abbiamo studiato Ad esempio, il seguente metodo static String valueof (int a) restituisce una stringa che rappresenta il numero intero a
6 Esempio di uso di valueof Poiché valueof è un metodo statico, esso va invocato sulla classe (la sua esecuzione non è richiesta ad uno specifico oggetto) String s = String.valueOf (2007); // s vale 2007 s: String
7 Varianti di valueof Il metodo valueof è sovraccarico, nel senso che per ogni tipo primitivo di dato tipo, esiste il metodo static String valueof (tipo a); valueof restituisce sempre la stringa che rappresenta letteralmente il valore primitivo contenuto in a
8 Altre classi con metodi statici Nella API di Java esistono molte classi che offrono metodi statici Una di queste classi particolarmente utile è la classe Math (nel package java.lang.lang) la classe Math ha soltanto metodi statici ciascuno di tali metodi svolge una funzione matematica di uso frequente
9 Metodi della classe Math Ecco alcuni metodi della classe Math: static double abs (double a) // ritorna il valore assoluto di a static double pow (double a, double b) // ritorna a b static double sqrt (double a) // ritorna la radice quadrata di a static double sin (double( a) // ritorna il seno di a static double cos (double( a) // ritorna il coseno di a static double tan (double a) // ritorna la tangente di a static double log (double( a) // ritorna il log. di a in base e static double log10 (double( a) // ritorna il log. di a in base 10..
10 Costanti nella classe Math La classe Math definisce anche due costanti di uso comune, usando la massima precisione possibile Math.PI Math.E la costante π = la costante e =
11 Esempio di uso di Math Il seguente programma fa inserire all utente il raggio di un cerchio e ne visualizza l area sullo standard output class AreaCerchio{ public static void main (String[] args){ InputWindow in = new InputWindow (); double r = in.readdouble ( Raggio ); double a = Math.pow(r,2)*Math.PI; System.out.println ( raggio = + a); }.. }
12 Un problema ricorrente Supponiamo che, dato un valore String che rappresenta un numero intero, si voglia ottenere il valore intero corrispondente Ad esempio, supponiamo che s è una stringa che rappresenta una data nella forma gg/mm/aa (es. 07/11/2006 ) e supponiamo di voler memorizzare l anno in una variabile intera L anno è rappresentato dalla sottostringa s.substring(6) (6), ma come possiamo ottenere il valore intero corrispondente?
13 La classe Integer L API di Java fornisce una classe che permette di risolvere il problema, la classe Integer La classe Integer offre un metodo statico che restituisce il valore intero associato ad una stringa static int parseint(string s) Si può ad esempio scrivere int anno = Integer.parseInt(s.substring s.substring(6));
14 Classi wrapper La classe Integer è chiamata classe wrapper ( wrapper significa incartatrice ) In effetti, la classe Integer permette di creare oggetti un oggetto Integer rappresenta un valore int lo stato dell oggetto è il valore int rappresentato Integer a = new Integer (100); a: Integer
15 Gli oggetti Integer E possibile creare un oggetto Integer, usando un apposito costruttore, che specifica l intero rappresentato Integer a = new Integer (100); a: Integer Il metodo di istanza intvalue chiede ad un oggetto Integer di restituire il valore int che esso rappresenta int b = a.intvaluea.intvalue(( );
16 Altre classi wrapper L API di Java offre una classe wrapper per ogni tipo di dato primitivo: Double Character Boolean. classe wrapper per i double classe wrapper per i char classe wrapper per i boolean Ogni classe wrapper X (tranne Character) ha un metodo statico di nome parsex; ogni classe wrapper ha inoltre un metodo di istanza per ottenere il valore primitivo incartato (doublevalue(), charvalue(), )
17 Il metodo speciale main Il metodo speciale main, che serve ad avviare l esecuzione di un programma, è un metodo statico Se X è una classe che contiene il metodo speciale main, il programma può essere avviato chiamando (indirettamente) il metodo main sulla classe X non esistono oggetti di X prima che il programma inizi la sua esecuzione
18 Glossario dei termini principali Termine Metodo di istanza Metodo statico (o di classe) static Math Classi wrapper Significato Metodi che vengono invocati sulle istanza (oggetti) di una classe i metodi visti fin qui sono metodi di istanza Metodo che viene invocato sulla classe è la classe che esegue il metodo non un suo oggetto Parola chiave del linguaggio Java usata per definire metodi statici Classe dell API di Java che offre solo metodi statici, utili nei calcoli matematici Classi dell API di Java che incartano valori primitivi. Esiste una classe wrapper per ogni tipo primitivo (es. Integer, Double, Character, )
Java Classi wrapper e classi di servizio. Classi di servizio
Java Classi wrapper e classi di servizio 1 Classi wrapper Concetti di base In varie situazioni, può essere comodo poter trattare i tipi primitivi come oggetti. Una classe wrapper (involucro) incapsula
TIPI PRIMITIVI E CLASSI WRAPPER
I tipi primitivi come oggetti Package java.lang In varie situazioni, può essere comodo poter trattare i tipi primitivi come oggetti per passarli per riferimento a una funzione quando una funzione pretende
TIPI PRIMITIVI: LIMITI
TIPI PRIMITIVI: LIMITI I tipi primitivi sono i "mattoni elementari" del linguaggio In varie situazioni può però essere necessario trattare i tipi primitivi come oggetti quando una funzione pretende come
Fondamenti di Informatica T-1
Fondamenti di Informatica T-1 Introduzione al linguaggio Java - Input/Output, Variabili, Tipi Tutor: Allegra De Filippo [email protected] a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De
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
Definizione di classi. Walter Didimo
Definizione di classi Walter Didimo Definizione di classi Fino ad ora abbiamo imparato a: creare oggetti da classi già pronte usare gli oggetti creati, invocando metodi la creazione e l uso di oggetti
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
Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)
Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici
Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
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[]
La Gestione della Memoria. Carla Binucci e Walter Didimo
La Gestione della Memoria Carla Binucci e Walter Didimo Esecuzione di programmi Java L esecuzione di un programma Java richiede: la compilazione del codice Java in bytecode Java (un linguaggio macchina
Metodi statici. Dichiarazione e chiamata di metodi statici
Metodi statici Dichiarazione e chiamata di metodi statici 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
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
18 - Classi parzialmente definite: Classi Astratte e Interfacce
18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
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
Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 07 Oggetti e Java Marzo 2010 Programmazione Java 1 Contenuti Il linguaggio Java Applicazioni Java e il metodo main Esempi di applicazioni
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
Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario La classe String Lettura da input di dati numerici (tipo int) Stampa di dati numerici Uno sguardo al codice Esercizi 21/03/2011 2
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Riferimenti versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di
Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array
Classi e array Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Si vuole definire una classe Polinomio per la rappresentazione di polinomi a
Programmazione. Cognome... Nome... Matricola... Compitino del 17 gennaio 2007
Cognome............................. Nome................................ Programmazione Compitino del 17 gennaio 2007 Matricola............................ NOTA: Negli esercizi 1, 2, 3, 4 fate riferimento
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
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
Esempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList Fondamenti di Informatica L-B 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito
Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java
Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java AA 2018/2019 Tutor Lorenzo Rosa [email protected] 2 Programma Introduzione al calcolatore e Java Linguaggio Java, basi e
Esempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList! Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione
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
IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input
Proprietà delle Classi e degli Oggetti in Java
Fondamenti di Informatica Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Proprietà object-oriented di Java Definendo le caratteristiche e le operazioni di
