Quarta Lezione: VARIABLES

Giupm2214o 19, 2008 by inviaggioconjava

Un OGGETTO/OBJECT “archivia” il suo STATE/STATO in FIELDS/VARIABILI.

Java definisce 4 tipi di VARIABILI:

  1. INSTANCE VARIABLES (NON-STATIC FIELDS): i valori relativi sono unici per ciascuna istanza o KEYWORDS/MODIFICATORE di una classe (cioè, per ciascun OGGETTO/OBJECT). Non sono ovviamente introdotte da static
  2. CLASS VARIABLES (STATIC FIELDS): sono introdotte dal MODIFICATORE static e dalla KEYWORD final. Quest’ultima, se applicata fara sì che il VALORE dell’OPERANDO di dx. non cambierà MAI
  3. LOCAL VARIABLES: il tipo dipende dalla LOCATION nella quale la variabile è dichiarata:
    tra l’apertura e la chiusura delle graffe di un METHOD le LOCAL VARIABLES sono visibili solo all’interno del METHOD all’interno del quale sono dichiarate
  4. PARAMETERS: public static void main(String[] args);

NAMING :Le regole convenzionali per denominare le VARIABLES sono le seguenti:

  1. I Nomi delle VARIABLES sono case-sensitive: possono iniziare:
    • lettera minuscola
    • $
    • _
  2. Usare FULLWORDS e non abbreviazioni di cui non vi ricorderete l’origine.
    Tuttavia NON POSSONO ESSERE KEYWORD o RESERVED WORD
  3. Se il nome scelto per indicare una VARIABLE è una sola parola, allora come suddetto deve iniziare con la lettera minuscola
  4. Se consiste di più parole sarà MAIUSCOLA la prima lettera di ciascuna parola che compone il nome completo della VARIABLE
  5. Se il nome della VARIABLE si riferisce ad un VALORE COSTANTE: e.g.
    static final int NUM_ROWS = 6;

    allora dovrà essere TUTTO MAIUSCOLO e le 2 PAROLE SEPARATE DA UN UNDERSCORE

P.S, N.B., N.d.R.:TUTTE LE VARIABLES DEVONO ESSERE DICHIARATE PRIMA DI ESSERE USATE INOLTRE SUPPORTANO 8 PRIMITIVE DATA TYPES(=”RESERVED KEYWORD”).

Eccoli:

  1. byte che vale 8-bit e va da -128 a 127 e può essere usato per salvare in memoria lunghi ARRAY e può essere usato anche al posto di INT.
  2. short che vale 16-bit e va da -32.768 a 32767. Anche questo può essere usato per gli ARRAY
  3. int che vale 32-bit e va da -2.147483.648 a 2.147.483.647, tuttavia con i grandi numeri è preferibile usare :
  4. long che vale 64-bit e va da …..
  5. float che vale 32-bitIEEE 754 e si usa con numero che contengono un floating point
  6. double che bvale 64-bit IEEE 754: idem di float
  7. boolean che vale 1-bit con due valori TRUE o FALSE: si usa con i “simple flags”
  8. char che vale 16-bit: “unicode character” e va da 0 a 65.535

public final class String

extendes Object

implements Serializable, Comparable , CharSequence
.
Commento: LE STRING SONO COSTANTI: NON È POSSIBILE MODIFICARE IL LORO VALORE DOPO CHE SONO STATE CREATE:
String str ="abc";
Quest’ultimo snippet di codice è equivalente al seguente:
char data[]={’a',’b',’c'};

String str = new String(data);
Di seguito altri esempi di come le STRING possono essere usate:

  • System.out.println(”abc”);
  • String cde = “cde”;
  • System.out.println(”abc”+ cde);
  • String C = “abc”.substring(2,3);
  • String d = cde.substring(1,2);

Affrontiamo contestualmente i CLASS CHARACTER, ma prima uno snippet esemplificativo di codice:

public final class Character

extends Object

implements Serializable, Comparable(Character)
.
Per quanto riguarda il PRIMITIVE DATA TYPE di cui sopra al n.8
vedi anche
Per concludere è d’obbligo un accenno ai VALORI DI DEFAULT, poiché non è sempre necessario ASSEGNARE un VALUE ad una VARIABLE.

DATA TYPE

DEFAULT VALUE

byte

0

short

0

int

0

long

0L

float

0.0f

double

0.0d

char

‘\u0000′

String (o altro OBJECT)

Null

boolean

false

WARNING: relying on such default values, however, is generally considered BAD PROGRAMMING STYLE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

3^ CONVERSAZIONE: IMPARARE JAVA: I CONCETTI DELLA PROGRAMMAZIONE OBJECT-ORIENTED

Giupm6643o 19, 2008 by inviaggioconjava

Ci sono 4 parole chiave che esprimono altrettanti concetti della OOP, eccole:

  1. OBJECTS
  2. MESSAGES
  3. CLASSES
  4. INHERITANCE
  1. MA…Chiediamoci che cos’è un OGGETTO/OBJECT:
    Gli oggetti del mondo reale condividono 2 caratteristiche: essi hanno uno STATE e un BEHAVIOR.
  2. MA: in termini informatici come i può esprimere tutto ciò, fuor di metafora, ed entrando nel core di Java?Ecco posta l’equivalenza terminologica tra il mondo reale e quello della JVM:
    state == fields : behavior == methods.
    MA: in italiano?
    Eccovi accontentati: FIELDS == VARIABILI : METHODS == FUNZIONI
  3. CHE COS’È UNA CLASSE/CLASS?: L’OGGETTO è un’ISTANZA della CLASSE di OGGETTI
  4. Definiamo ora l’INHERITANCE: intanto la traduciamo: Ereditarietà: la OOP usa CLASSI per ereditare STATE e BEHAVIOR da altre CLASSI. In JAVA ciascuna classe ha una sola SUPERCLASSE E ciascuna SUPERCLASSE può avere un numero illimitato di SUBCLASSES:

    class Tastiere extends Pianoforte {
    ………………………………………………..
    }

  5. I METHODS formano l’INTERFACE dell’OGGETTO. Nella sua forma più semplice un’INTERFACE è un gruppo di METHODS correlati come “corpi” vuoti/VOID. Per ribadire il concetto con una riformulazione esplicitante: i METHODS formano l’INTERFACE dell’OBJECT. Ecco la sintassi:
    class Bosendorfer implements Pianoforte{
    ……………………………………………………….
    }
  6. MA: COS’È UN PACKAGE?

    Un PACKAGE è un namespace (cfr. XML) che organizza e contiene un insieme di relative CLASSES ed INTERFACES

2^ PROCEDURA: “HELLO JAVA WORLD!” (poteva mancare?)

Giupm4432o 19, 2008 by inviaggioconjava
  1. Consigliamo vivamente di usare un IDE sin dall’inizio dei tutorial:
    NETBEANS 6.1 È OTTIMO
    .
  2. La nostra applicazione prevede le seguenti procedure:
    1. Creare un progetto in NETBEANS IDE
    2. Aggiungere codice al file
    3. Con NETBEANS non è necessario utilizzare il PROMPT DEI COMANDI di Windows: con BUILD (javac, il compiler) e RUN (java, il launcher tool) si arriva ovunque
    1. File|New Project
    2. “New Project” Wizard:
    1. Categories: General ,  Projects: JavaApplication
    2. “New Java Application” Wizard:
      Project Name: Hello World AppProject location: C:\..\..\NetBeansProject\

      Project Folder C:\..\..\NetBeansProject\HelloWorldApp (questa cartella è stata creata da netbeans

      Selezionare i due checkbox:
      1. Create main Class
      2. Set as main project

    3. Cliccare su FINISH
      1. Projects
      2. Nella finestra dell’Editor con il file chiamato “HelloWorldApp.java”
      3. In Navigator-”HelloWorldApp.java”
      1. File | “HelloWorld App” Properties, da aprire nella finestra Projects Properties-Hello World App
      2. in Categories : selezionare a sx. Libraries
      3. a dx. deve comparire la Java Platform
      4. in basso selezionare il checkbox con la seguente label “Build Projects on Classpath
      5. Aggiungere codice al File generato dall’IDE:System.out.println("Hello World");
      6. File | Save
      7. Per compilare il file .java in un file .classBuild | Build Main project

      A QUESTO PUNTO POSSONO SUCCEDERE DUE EVENTI:

      1. O la JVM vi risponde BUILD SUCCESSFUL
      2. Oppure BUILD FAILED: ci sono tre tipi di “errore ” in Java (ne parleremo nei prossimi Post), tuttavia nella “OUTPUT Window” è possibile correggere l’errore con un doppio click sul testo del link
      3. Altro step: Build | Build Main Project con il risultato di compilare il file .java
        e di generare il file .class
      4. Run | Run Main Project: guardate un po’ l’OUTPUT-Hello_World_App(run)!

      FINE DELLA SECONDA PROCEDURA

      Ma non è tutto: dopo aver creato un progetto con un IDE è possibile aggiungervi dei nuovi file:
      I MODI SONO 2:

      1. File | New File e il Wizard che segue
      2. File | Empty Java File

      Per ottenere il massimo risultato con il minimo sforzo vi suggerisco la scorciatoia con i tasti funzione:

      1. F9 per compilare il file(=javac)
      2. Shift+F6 (=java) per eseguirlo

1.IL “COMINCIAMENTO”, ovvero il Primo Insieme di procedure

Giupm121211o 19, 2008 by inviaggioconjava

Questo Post illustra le conoscenze di base per il “Cominciamento” con Java: è diviso in 2 Procedure, a loro volta suddivise in Step (n.b. anche se Java non è un linguaggio “procedurale”, il suo apprendimento risulta più facile se affrontato passo dopo passo).

  1. Java, ovvero il fenomeno mass-mediatico
  2. Java, ovvero un satori
    Il catalogo è questo, anzi il decalogo è questo:

  1. Architectur neutral
  2. Distribuited
  3. Dynamic
  4. High Performance
  5. Multithreaded
  6. Object-Oriented
  7. Portable
  8. Robust
  9. Secure
  10. Simple
    La Java Platoform è strutturata in due componenti

  1. JVM, ovvero Java Virtual Machine
  2. API, ovvero Java Application programming Interface, costituita da software raggruppati in “libraries”, dalle relative “classes” e “interfaces”. LE LIBRARIES SONO CONOSCIUTE MEGLIO COME PACKAGES
    Cosa sono i “Development Tools” ?

  1. javac: il compilatore
  2. java: l’esecutore
  3. javadoc: la documentazione.
    Cosa sono le “Deployment Technologies”?

  1. Java Web Start software
  2. Java Plug-in software
  3. e servono per eseguire le applicazioni

    È possibile creare delle GUIs (Graphical User Interfaces) che in Java si chiamano User Interface Toolkits: attualmente le più utilizzate sono

  1. SWING
  2. e

  3. Java2D
    Cosa sono le “Integration Libraries”?

  1. Java IDL API
  2. JDBC API(Java DataBase Connectivity)
  3. JNDI API (Java Naming and Directory Interface)
  4. Java RMI (Remore Method Invocation)
  5. Java RMI-IIOP Technology, ovvero Internet Inter-ORB Protocol Techonology, le cui funzioni sono di abilitare l’accesso ad un database e la gestione di oggetti remoti

API JDBC, ovvero la connessione al database: ATTO PRIMO

Giuam8848o 19, 2008 by inviaggioconjava

L’API di JDBC è stata prevista per ottenere oggetti semplici da oggetti semplici.
Ciò significa che la JDBC realizza facilmente facili implementazioni in un database.
Per usare JDBC è possibile usare comunissimi comandi SQL per realizzare applet e applicazioni che hanno come obiettivo comune la connessione ad un database.

  1. Dopo la lettura di questo Post imparerete ad usare l’API di JDBC
    1. per creare semplici tabelle
    2. ad inserire valori in esse
    3. porre delle query alle tabelle
    4. trovare record con le query
    5. e, “last but not least” imparerete ad aggiornare i dati delle tabelle
  1. Impareremo ad usare semplici comandi e soprattutto come compilarli
  2. Affronteremo anche un esempio di “Stored Procedure”
  3. Realizzeremo transazioni
  4. Eviteremo le “eccezioni” e i segnali di Warning
  5. Ecco il primo frammento di codice Class.forName("org.apache.derby.jdbc.EmbeddedDriver")

  1. L’ API di JDBC è un’ API Java che facilita l’accesso ad ogni tipo di dati strutturati in tabelle. (Si presume che i dati siano archiviati in un Database Relazionale
  2. Ecco un altro esempio di codice:

    jdbc:derby:[propertyList]
    che presuppone l’utilizzo di Derby come database Embedded.

  3. JDBC ci aiuta a scrivere applicazioni Java che gestiscono le seguenti attività oggetto di programmazione
  4. Connettersi ad un database
  5. Effettuare query e aggiornamenti con comandi SQL inviati al Database
  6. Cercare ed elaborare i risultati trovati nelle risposte del database alla nostra query
Il seguente frammento di codice offre un esempio concreto dei precedenti 3 item delineati qui sopra:

"jdbc:derby://localhost:1527/nomedeldatabase", "username", "password"

Ecco il precedente frammento contestualizzato:

Connection = DriverManager.getConnection


(”jdbc:mysql://localhost:3306/nomedatabase”, “username”, “password”);

Statement stmt = createStatement();


ResultSet rs = stmt.executeQuery(”SELECT a, b, c FROM Tabella1″);


while (rs.next()){


int i = rs.getInt(”a”);


String s = rs.getString(”b”);


float f = rs.getFloat(”c”);

}

DIFFIDATE DEI TUTORIALS UFFICIALI DELLA MAISON “SUN”: CONTENGONO MOLTI ERRORI CHE IO HO CORRETTO E CHE HO PRESENTATO ALLA VOSTRA VALUTAZIONE

“Il Server è…servito” Secondo Menu

Magpm6637o 19, 2008 by inviaggioconjava

Esploriamo il nodo dell’”Application Server” GlassfishV2.
Disconnettiamoci.

  1. Applications
    1. Enterprise Applications (non è un nodo, almeno per il momento)
    2. “Web Applications” è un nodo con 6 sottonodi denominati:
      1. “portletdriver” che comprende 10 “foglie”
      2. “amserver” che comprende 57 “foglie”
      3. “producer” che comprende 10 “foglie”
      4. “wsrp-producer-portlet” che comprende 3 foglie
      5. “consumer” che comprende 3 foglie
      6. “wsrp-consumer-portlet” che comprende 3 foglie
    3. “EJB Modules”
    4. “connector Modules”
    5. “App Client Modules”
  • “Resources”
    1. JDBC
      1. jdbc/sample
      2. jdbc/______TimerPool
      3. jdbc/______default
      4. jdbc/______callFlowPool
    2. Connection Pools
      1. ______CallFlowPool
      2. SamplePool
      3. ______TimerPool
      4. DerbyPool
    3. JMS Resources
      1. Connector Factpories
      2. Destination resources
    4. JavaMail Sessions
    5. JNDI
      1. Custom resources
      2. External resources
    6. Connectors
      1. Connector Resources
      2. Connector Connection Pools
      3. Admin Object Resources
    7. JVMs
    8. Access Manager
      1. Profiles
        1. Anonymous
        2. …..

        3. Liberty SAMLToken
      2. JBI
        1. Service Engines (che comprende 4 foglie
        2. Binding Components (che comprende 3 foglie)
        3. Shared Libraries (che comprende 4 foglie)
        4. Service Assemblies

    2. “Il Server è…servito” Primo Menu

    Magpm4454o 19, 2008 by inviaggioconjava
    1. Selezionare con il tasto sx. il nome dell’Application Server.
    2. Aprire il menu contestuale con il tasto dx. del mouse
    3. Il menu contestuale è suddiviso in quattro parti, eccole:
        • Start
        • Start in Debug Mode
        • Start in Profile Mode
        • () Restart
        • () Stop
        • Refresh
        • Remove
        • View Admin Console
        • View Server Log
        • View Update Center
        • Properties
    Esploriamo:Cliccare su START
    1. Primo Evento: “Starting GlassfishBV2″, questo è il messaggio che compare in basso a destra
    2. Secondo Evento: nel frattempo si aprirà al centro una finestra denominata “Output” con due schede:
      • quella di dx., che è anche la prima ad elaborare il comando “Start”
      • quella di sx. riguarda il Database
      • ma torniamo alla prima:

    3. Terzo Evento: in fondo alla videata compare il messaggio “Application server startup complete”
    4. Nel frattempo si dissolverà il messaggio in basso a destra: il nostro scopo è raggiunto: potete verificarlo in tre URL:
      1. scompare nel campo dell’URL il rinvio al file “login.jsf”
      2. si apre una videata ricca di informazioni denominata “Sun Java System Application Server Admin Console” con 3 frame
        1. a sinistra “Common Tasks” che rappresenta l’apice di una serie di nodi che se aperti evidenziano funzionalità
        2. Connettiamoci a Internet: si visualizzerà anche il frame dx. sottostante
        3. Puntiamo sulla seconda serie di pulsanti denominata “Update Center”
          1. “Getting Started Guide”
          2. nel mio caso alle ore GMT 16.46 di Lunedì 19 maggio 2008 ci sono ben “19 New Component(s) Available
      • http://localhost:8080
      • https://localhost:8181
      • http://localhost:4848
      1. Scompare dal campo dell’URL il rinvio al file “login.jsf”
      2. Si apre una videata ricca di informazioni denominata “Sun Java System Application Server Admin Console” con 3 frame:
        1. a sx. “Common Tasks” che rappresente la radice di una serie di nodi che se aperti evidenziano le loro specifiche funzionalità
        2. Connettiamoci a Internet: si visualizzerà anche il frame dx. sottostante
        3. Puntiamo sulla seconda serie di pulsanti denominata “Update Center”
          1. “Getting Started Guide”
          2. Nel mio caso alle ore GMT 16.46 di Lunedì 19 maggio 2008 ci sono ben “19 New Component(s) Available”
        4. :

    5. Verifichiamolo: digitiamo in Hotjava il seguente URL: http://localhost:4848/.
      Comparirà il file “login.jsf” che visualizza l’”Admin Console” di “Sun Java System Application Server” con due label esplicitanti il tipo di contenuto dei textfields corrispondente: tutto ciò per effettuare il login:
      Digitiamo i due valori di cui sopra e clicchiamo su Login.
      Effetti:

    1. Procedure preliminari

    Magam7747o 19, 2008 by inviaggioconjava
    1. Doppio click sull’icona del desktop
    2. Vi accoglierà la “Start Page” (si può anche non visualizzare all’avvio successivo deselezionando il checkbox in basso con la seguente label “Show On Startup”.
    3. È divisa in quattro aree:

      1. In alto a sx. “Recent Projects”
      2. (in senso orario) “News & Tutorials
      3. Blogs
      4. Featured Demo
      5. Per queste funzionalità (eccetto la prima) è necessaria la connessione ad Internet

    N.B. Per creare il vostro workspace click sulla crocetta in alto a sx. per chiudere la Start Page

    Si inizia:
    1. Window>Projects (Ctrl+1): si apre una colonna alla vostra sx. per il momento vuota
    2. Window>Files (Ctrl+2)
    3. Window>Services (Ctrl+5): si apre una colonna alla vostra sx. che visualizza una struttura ad albero con 4 nodi:
      • Databases
      • Web Services
      • Enterprise Beans (2. x)
      • Servers

    Concentriamo la nostra attenzione (solo perché è il primo della serie di nodi, ma in realtà è certamente il più complesso:
    Procedura:

      Clicchiamo sul nodo: si apriranno 3 tipi di altri nodi:

    1. “Java DB” (rappresentato da un “cilindro grigio)
    2. “Drivers” (raffigurato da una cartella giallo-arancione) N.B. per default è presente un unico elemento denominato “JDBC-ODBC Bridge”
    3. Per default ci sono già tre Database
      • sample
      • travel
      • vir

      Sono visualizzati con l’URL che punta a ciascuno ma per attivarli è necessario far partire un application server che è presente nel quarto nodo.
      “Impariamo facendo”: a questo punto è utile procedere funzionalmente, senza seguire il layout, certamente amichevole e potente di NetBeans, ma non immediatamente utilizzabile senza una guida. perciò interrompiamo il tour e puntiamo sul nodo Servers.

      Procedura per attivare un Application Server

      1. Cliccare con il tasto dx. del mouse sull’icona
      2. L’unica possibilità che ci viene offerta è “Add Server…”
      3. Clicchiamo su Add Server>si apre una finestra denominata “Add Server Instance”: è divisa in due colonne:
      4. La colonna sx. presenta gli Steps della procedura
        1. Il primo ci invita a “Choose Server”
        2. Il framer di dx. presenta una lista di Application Server: (se l’abbiamo installato) dovrebbe comparire anche l’Application Server che utilizzeremo: si chiama GlassFish V2
        3. Se lo selezioniamo verrà evidenziato da una linea blu e il suo nome comparirà nel textField in basso con l’etichetta “Name”
        4. Clicchiano su “Next”>si accede al secondo Step di 3 denominato “Platform Folder Location” che è anche il nome del frame di dx.. Questo Step ( il 2°) vi invita a “Specificare l’allocazione nel file system della cartella dove risiede l’Application Server
        5. Selezioniamo il radiobutton con la seguente label “Register Local Default Domain” laddove per “Domain” (menu a cascata) l’unica possibilità di scelta è “localhost:4848(…\domains\domain1):
          lasciatela invariata, anche perché è l’unica
        6. Next
        7. È il terzo step e si intitola “Domain Admin Login Info” ed è costituito da 2 TextField:
          • “Admin Username”
          • “Admin Password”

          Inserite uno Username (per default il textField è già compilato con lo Username classico “admin”.
          Inserite una Password che l’IDE userà per autenticare il login.

        8. Finish
        9. C’è u n sesto punto molto importante (la finestra si è chiusa e nella colonna dei “Services” si apre il nodo denominato “Servers” e appare una altro nodo con una favicon a forma di pesce: il server che avevamo selezionato “GlassFishV2″