Caricare documenti e articoli online 
INFtub.com è un sito progettato per cercare i documenti in vari tipi di file e il caricamento di articoli online.


 
Non ricordi la password?  ››  Iscriviti gratis
 

MANUALE JAVA - PROGRAMMING IN JAVA

informatica



MANUALE JAVA


INTRODUZIONE 1 (definizioni)


Def_oggetto: set di dati e i metodi che operano su quei dati, i dati di un oggetto in java sono detti fields. Ogni nuovo oggetto creato possiede i propri dati e un identico insieme di metodi. Una volta ccreati gli oggetti sono entità indipendenti.


Def_classe: stampo template per la creazione di oggetti.


Le applets sono eseguite da un browser di rete all'interno di pagine Web; non possono leggere nè scrivere dati sul sistema client e nemmeno creare connessioni a siti diversi da quello di origine.




Def_array: sequenza di elementi varibili dello stesso ti 222h75c po(liste di ogg.)per accedere ad un elemento si utilizza l'indice che indica la posizione delle'elemento(0 1 2 3 4 5 ..);l'array va dichiarato con un nome, tipo di dati, range dei valori possibili e come oggetto istanzito. Se la dimensione può essere letta durante l'esecusione l'array è dinamica.L'inizializzazione è automatica (numerica, boleana,stringa, false, null) ma può essere anche forzata.


Def_assegnazioni: le assegnazioni NON sono equazioni nonostante vengano indicate con =


Def_dichiarazione di una classe: creiamo un moedello da cui istanziare delle unità indipendenti dotate di proprie caratteristiche e comportamenti: gli oggetti.


Def_istanziare: invocare un metodo costruttore, riservare lo spazio di memoria per l'oggetto, inizializzare le variabili.


PROGRAMMING IN JAVA (INTRODUZIONE 2)


Sintassi classi


Le classi contengono campi e metodi...


Class Sum




...in questo caso: K=campo; H= variabile locale; X=parametro di un metodo.


Esistono metodi della classe console ma l'utente puo crerne di nuovi.

Un metodo ha dei parametri e ritorna un valore, è definito da un comando che definisce il suo comportamento, si trova sempre dentro una classe, può contenere dichiarazioni di variabili.


Sintassi: una classe va scritta in maiuscolo, metodi e variabili in minuscolo, costanti tutte maiuscolo.




valori


Valori numerici

Valori logici o boleani

Valori nulli (o sequenza di caratteri)

Caratteri speciali

Oggetti



Espressioni boleane


True o false


==  uguale a

!=  diverso da

><  maggiore/minore di

>= <=   maggiore unguale/minore uguale


&&  end  -se la prima esoressine è falsa, la sec. Non viene calc.

||  or   -la prima espressione è vera, la seconda è falsa.





DICHAIRAZIONI DI VARIBILI


La dichiarazione di variabili alloca spazio di memoria e determina quali operazioni sono possibili.


Una variabile va SEMPRE dichiarata prima di essere usata.



CREAZIONE OGGETTI



Ogni oggetto deve essere istanziato dalla propria classe attraverso il metodo speciale constructor...


Console c;  //c'è un ogg.di tipo console

c=new Console(); //crea l'ogg.c


Ogni classe ha il proprio constructor che ha lo stesso nome della classe; anche se privo di parametri tale metodo richiede ()


Per utilizare un metodo: nomeogg.nomemetodo




DEFINIZIONI METODI


Tipo di risultato NomeMetodo (parametri)



Int numeropiatti (int portate, int ospiti)   


METODO PER INPUT DI STRINGA



Flow charts - controllo errori in esecuzione:eccezioni...






INIZIO






    BLOCCO TRY

   IN








    FINE   NO  ERR? 



   SI  




     RIPETI    BLOCCO ECCEZIONE







Def_errore: quello che viene dato in input e non viene riconoscuto dal programma.

Se il tentativo di lettura genera errore vine gestito un codice di eccezione.





String imputString ()



catch (Exception e)







INPIT/OUTPUT DA/SU UN FILE


INPUT


BufferedReader input;

input = new BufferedReader (new FileReader (fileName));

linea = input.readLine ();


OUTPUT


PrintWriter output;

output = new PrintWriter (new FileWriter (fileName));

output.println (ciochevoglio);


output.close


Per l'input di un numero: la linea di caratteri deve essere analizata e convertita-oppure- usiamo un metodo Console...(metodo function)...


C =new Console();

intero = c.readInt();


Una linea di caratteri può essere letta con il metodo radLine della classe Console....


C = new Console();

c.println ("scrivi il tuo nome");

nome = c.readLine();

c.println ("il tuo nome è \""+nome+""\);


risultato:[scrivi il tuo nome

   Erika

   Il tuo nome è "Erika"]







Input ripetuto, per inserire una serie di valori...


/*clcola la media di 10 valori *=/


int valore;

int somma;

c.println ("dammi diecoi valori");

for (int i=1; i<=10; i++)


c.println ("la media è "+(double) somma/10);




LOOP



COUNTED LOOP:


FOR


Potente strumanto di interazione di istruzioni che esegue una serie di istruzioni fino a che non è stato raggiunto il limite indicato da una condizione.


La variabile assume spesso il nome di conatatore e va inizializzata.

Ad ogni passaggio questa viene incrementata.

Si confronta con la condizione, se falsa il ciclo continua, se vera il ciclo esce.


L'isrtuzione è...


For (inizializzazione; condizione; incremento) istruzione;


inizializzazione: da dove inizializzare la var.contatore.(indice)

condizione: pone il limite condizionale entro il quale l'istruzione deve essere reiterata.

Incremento: dice al loop di quanto deve essere incrementata o decrementata la var.


Int somma =0;

for (int numero=1; numero <=100; numero++)


c.println("la somma dei quadrati da 1 a 100 è" +somma);



Se vogliamo solo i dispari: for (int nimero=1; numero <=100; numero+=2)

Loop infinito: for (;;)






CONDITIONAL LOOP:


WHILE


Esegue l'espressione finchè la condizione è vera.

Posso sostituirlo con qualsiasi counted loop.


Int somma =0;

Int numero =1;

while (numero <=100)


c.println ("la somma dei quadrati da 1 a 100 è" +somma);


Se occorre eseguire un blocco di istruzioni almeno una volta ci viene in aiuto  il...do...che esegue l'espressione finchè la condizione è vera.




Quindi la sintassi può essere di due tipi:


1.prima esegue il controllo e poi esegue...


while (condizione di continuazione)



2.prima esegue e poi controlla...in tal modo il ciclo si esegue comunque almeno un volta...


do


while (condizione di continuazione)





OPERATORI CONDIZIONALI



IF...ELSE (se ...altrimenti)


Solo un'alternativa della condizione boleana viene eseguita..


If (condizione)


else


USCITA DA UN CONDIZIONAL LOOP

Break


Break, assieme al comando contunue, serve ad ottimizzare i cicli for e while e l'operatore condizionale if.

Il comando break interrompe un blocco di istruzioni saltando alla prima istruzione seguente il blocco contenente il break. Si evitano cosi loop senza uscita.


Int somma=0;

int numero;

final int semaforo =-1

while (true)

continue 

c.println ("la somma dei numeri è" +somma);





MULTY-WAY SELECTION


Anzichè utilizzare degli if...else nidificati, usiamo il costrutto switch o case.


Switch (variabile etichetta)



viene valutata la var. che deve dare un risultato intero.

si salta al primo valore che corrisponde al valore nei case.

il flusso prosegue all'interno dello switch al successivo case, a meno che non si incontri un break che manda alla fine dello switch.

se nesuno dei case è soddisfatto si salta al default(che è opzionale).


Int tariffa=0

Switch (percorso)



se all'inizio percorso vale 1 o 2, tariffa alla fine vale 5.

Se all'inizio percorso vale 3, tariffa alla fine vale 4.

Se all'inizio percorso vale 4 (o più), tariffa alla fine vale 6.



Flow charts..






True false

  if  




Clausola if  clausola else





  fine




Se ci sono più alternative...


If (condizione)


else

   if (condizione)


   else



se la clausola else non serve può essere omessa.






LE STRINGHE

Dichiarazione


Un oggetto srtinga va dichiarato attraverso la classe string.


String nome;

nome = new String ("Lorenzo");


oppure....


String nome ="lorenzo";


Metodi comuni della class.string


substring:


c.println (nome.substring (3))

risultato: stampa la parole partendo dalla 3.(0 1 2 3 4 5 6)


c.println (nome.substring (2,5))

risultato: stampa solo dalla 2 alla 5. (0 1 2 3 4 5 6)


lenght():


c.println(nome.lenght());

risultato: stampa il numero di lettere di cui è formata la parola.



c.println(nome.substring (nome.lenght())-1);

risultato: stampa l'ultima lettera della parola.



concat():


String n1 = "bianca";

String n2 = "neve";

String n3 = n1.concat (n2);

c.println (n3);

risultato: concatena le due parole; (biancaneve).


replace(,):


String n1 = "carta";

String n2 = n1.replace('a','o');

c.println(n1+""+n2);

risultato: trasforma le lettere citate...(carta--->corto).







ToUpperCase() / ToLowerCase() :


String n1 = "San Giovanni";

c.println(n1.toUpperCase());

risultato: trasforma tutto in maiuscolo (SAN GIOVANNI), ToLowerCase farà il contrario.


equalsIgnoreCase() :


String n1 ="enzo";

String n2 ="renzo";

c.println(n1.equalsIgnoreCase());

risultato: (false) confronta e indica se le parole sono uguali.


Equals() :


!(n1.equals(n2))

risultato: confronta le paole e indica se sono diverse.


CompareTo() :


n1.compareTo(n2)    =0  =>  n1=n2

    <0  =>  n1<n2

    >0  =>  n1>n2




la classe StrinBuffer


Una volta inizializzato un oggetto di tipo stringa non è più possibile cambiarne il contenuto, usiamo per ciò la classe StringBuffer....


StrinBuffer nome;

nome = new StringBuffer ("Mary");

nome.append ="anne";

c.println(nome.toString());

risultato: cambia la stringa (Maryanne).




La classe StringTokenizer


Per usare questa clesse dobbiamo importare il package iava.ntil.


Import java.util.*;


Serve per dividere una linea di testo in tiken(parole) separate da spazi, EOL, tabs.


Metodi:


countTokens()

nextToken()

hasMoreTokens()




while(line.hasMoreTokens())





tipi di metodi


per utilizzare un metodo dobbiamo conoscere la signature (firma) e fnction-type (quale valore produce),procedure-type (quali azioni compie).

NB: in java possimo avere dei function-type che producono anche azioni (side effects).


Procedure-type....


FillRect  (int  x, int y width, int height)

Y    width

 Name    parameters-data types x


SetColor (Color clr)    height






    action




Per chiamare un metodo devo passare i parametri attuali ai corrispondenti parametri formali della signature...


FillRect (int  x, int y width, int height)




    c.fillRect (0,0,50,100);


deve esistere corrispondenza 1 a 1 tra parametri attuali e parametri formali e corrispondenza di data type tra parametri e argomanti.


Quando un metodo deve essre usato al di fuori della classe in cui è definito va dichiarato public.

In un metodo dopo la keyword public e prima della signature possiamo avere due casi:


Procedure-type: scriviamo la keyword void


Publi void fillRect  (int  x, int y width, int height)




Functio-type: scriviamo il data type del valore restituito




Static public int quadrato (int numero)   parametro



valore restituito

   syatic keyword: metodi


Il metodo main è sempre definito static perchè la classe cui appartiene non è istanziata.

Tutti i metodi chiamati da main devono essere dichiarati static.

Un metodo non static viene cniamato object method, priam di poterlo usare la classe va istanziata e creato un oggetto di quella classe.

Anche una variabile può essere definita sratic, se una variabile viene definita static viene creata uan sola volta quando la classe viene caricata.

quando non lo è (static) alla creazione di un oggetto esso utilizza una copia della variabile.




Ambito dele variabili


a seconda di dove viene diachiarata varia l'ambito in cui opera una var.

quando ci riferiamo ad una var., java cerca in ordine:


var.locale al metodo

var.locale all'oggetto

var.della classe corrente

var.delle classi generatrici


per evitare ambiguità possimo usare le keyword:


this.variabile    per l'oggetto corrente

super.variabile   per la superclasse




identifier


usiamo un idetifier dopo averlo dichiarato come: variabile, nome di metodo o classe, var.indice(for), parametro di un metodo.

Lo scopo di un identifier è quella parte di programma dove esso è conosciuto e può essere utilizzato.

E' proibito ridefinire un identifer all'interno del suo scopo.

Nomi di parametri e identifier locali possono essere riutilizzati all'interno di una classe.

Identifier importati non possono essere ridefiniti.



Side effects


In java posso scrivere dei metodi functio-type che non si comportano come funzioni matematiche perchè modificano il programma a seconda di quante volte è stato eseguito (side effects):




CLASSI ED ERDITARIETA'

La classe "turtle"


Permette di istanziare object che tracciano linee:


La tartaruga va puntata in un certo punto dello schermo e puntata in una certa direzione.

Si muove sempre in linea retta.

Può cambiare direzione ruotando a destra o sinistra.

Può lasciare una traccia o no.


Posso istanziare un metodo della classe turtle senza parametri..


Turtle t;

t = new Turtle (C);


Posso istanziare un oggetto della classe Turtle con dei parametri usando un altro costruttore..


Turtle (Console c, int x, int y, int angle);




Creazione di una classe


Usiamo una classe senza conoscere com'è implementata:


La classe istanziata incapsula dati e metodi.

Sono public i metodi che possono essere usati dagli object.

Sono definiti protected dati e metodi che devono essere usati solo da metodi della stessa classe.

Posizione tartaruga, colore, dierzione e traccia sono memorizzati in istance variables...


//La Classe "Turtle"

import java.awt.*;

import hsa.Console;

public class Turtle





overloading


Quando due o più metodi hanno lo stesso identifier sono overloading.

Nessun costruttore uguale a un metodo overloading può avere lo stesso numero o tipo di parametri. In mancanza di un metodo costruttore per una clsse, le istance variables hanno valore defaul.


Inheritance(creare una nuova class.da una esistente)


Posso creare una nuova classe da una già esistente aggiungendo o modificando dei metodi (scrico solo i metodi cambiati__sovrascrivo).


Dare spessore alla traccia delle tartaruga: aggiungendo una var. lineWidth, modificando il metodo move e crando un nuovo metodo 'drawBigLine'....


//La classe "FatTurtle"

import hsa.Console;

public class FatTurtle extends Turtle


    InputFile.close();

   public in ContaParoleRiga (String StrigParametro)


for (i=1; i<=StringParametro.length(); i++)  //ciclo for


if SP:LastIndexOf('')!=SP.length()  //dice se l'ultimo spaz.non e in fondo

num words++;   alla riga

return(numWords);    //valore di ritorno


















PROGRAMMA COMMENTATO N°2


Calcola i quadrati dei da 1  a 10.




//La Classe Tavola dei quadrati.

Import java-awt.*;

import hsa.Console;

public class TavolaDeiQuadrati


   }//metodo main

   //metodo quadrato restituisce numero*numero    METODO QUADRATO

   static public int quadrato (int numero)


}/*classe tavola dei quadrati*/




PROGRAMMA COMMENTATO N°3:


Disegna un quadrato rosso di 30 pixel, con l'angolo sinistro alto al centro della console (come in figura).




   (0,0)   x




    y



Turtle t;

t = new Turtle (c);

t setColor (Color.red);


t.move (30);   //disegna il primolato lato    la tartaruga

t.turnRight (90);   alla fine...

t.move (30);   //disegna il secondo lato  ha posizione

t.turnRight (90);   diversa da

t.move (30);   //disegna il terzo lato    quella iniziale.

t.turnRight (90);

t.move (30);   //disegna il quarto lato


for (int lato=1; lato<=4; lato++)     la tart.viene


PROGARMMA COMMENTATO N°4:



//la classe "turtle"


public class Turtle

   //Constructo for defaul value

   publi Turtle (Console c)

  this.c = c;  i parametri del constructor sono

  x = c.getWidth()/2;  diversi dalla class variabless

  y = c.getHeight()/2;       

  angle = 0;

   //constructor for defaul value


   //constructor for parameter value

   public Turtle (Console c, int x, int y, int angle)

  this.c = c;   la keyword this identifica le

  this.x = x;   variabili dell'object e le

  this.y = y;   inizializza.

  this.angle = angle;

   //constructor for parameter value





Privacy




Articolo informazione


Hits: 1672
Apprezzato: scheda appunto

Commentare questo articolo:

Non sei registrato
Devi essere registrato per commentare

ISCRIVITI



Copiare il codice

nella pagina web del tuo sito.


Copyright InfTub.com 2024