Giupm2214o 19, 2008 by inviaggioconjava
Un OGGETTO/OBJECT “archivia” il suo STATE/STATO in FIELDS/VARIABILI.
Java definisce 4 tipi di VARIABILI:
- 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
- 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
- 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
- PARAMETERS:
public static void main(String[] args);
NAMING :Le regole convenzionali per denominare le VARIABLES sono le seguenti:
- I Nomi delle VARIABLES sono case-sensitive: possono iniziare:
- Usare FULLWORDS e non abbreviazioni di cui non vi ricorderete l’origine.
Tuttavia NON POSSONO ESSERE KEYWORD o RESERVED WORD
- Se il nome scelto per indicare una VARIABLE è una sola parola, allora come suddetto deve iniziare con la lettera minuscola
- Se consiste di più parole sarà MAIUSCOLA la prima lettera di ciascuna parola che compone il nome completo della VARIABLE
- 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:
- 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.
- short che vale 16-bit e va da -32.768 a 32767. Anche questo può essere usato per gli ARRAY
- int che vale 32-bit e va da -2.147483.648 a 2.147.483.647, tuttavia con i grandi numeri è preferibile usare :
- long che vale 64-bit e va da …..
- float che vale 32-bitIEEE 754 e si usa con numero che contengono un floating point
- double che bvale 64-bit IEEE 754: idem di float
- boolean che vale 1-bit con due valori TRUE o FALSE: si usa con i “simple flags”
- 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!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Tag: Add new tag
Pubblicato in Procedure | Non ci sono Commenti »
Giupm6643o 19, 2008 by inviaggioconjava
Ci sono 4 parole chiave che esprimono altrettanti concetti della OOP, eccole:
- OBJECTS
- MESSAGES
- CLASSES
- INHERITANCE
- MA…Chiediamoci che cos’è un OGGETTO/OBJECT:
Gli oggetti del mondo reale condividono 2 caratteristiche: essi hanno uno STATE e un BEHAVIOR.
- 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
- CHE COS’È UNA CLASSE/CLASS?: L’OGGETTO è un’ISTANZA della CLASSE di OGGETTI
- 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 {
………………………………………………..
}
- 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{
……………………………………………………….
}
- MA: COS’È UN PACKAGE?
Un PACKAGE è un namespace (cfr. XML) che organizza e contiene un insieme di relative CLASSES ed INTERFACES
Pubblicato in Procedure | Non ci sono Commenti »
Giupm4432o 19, 2008 by inviaggioconjava
- Consigliamo vivamente di usare un IDE sin dall’inizio dei tutorial:
NETBEANS 6.1 È OTTIMO.
- La nostra applicazione prevede le seguenti procedure:
- Creare un progetto in NETBEANS IDE
- Aggiungere codice al file
- 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
- File|New Project
- “New Project” Wizard:
- Categories: General , Projects: JavaApplication
- “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
- Cliccare su FINISH
- “Projects“
- Nella finestra dell’Editor con il file chiamato “HelloWorldApp.java”
- In Navigator-”HelloWorldApp.java”
- File | “HelloWorld App” Properties, da aprire nella finestra Projects Properties-Hello World App
- in Categories : selezionare a sx. Libraries
- a dx. deve comparire la Java Platform
- in basso selezionare il checkbox con la seguente label “Build Projects on Classpath
- Aggiungere codice al File generato dall’IDE:
System.out.println("Hello World");
- File | Save
- Per compilare il file .java in un file .classBuild | Build Main project
A QUESTO PUNTO POSSONO SUCCEDERE DUE EVENTI:
- O la JVM vi risponde BUILD SUCCESSFUL
- 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
- Altro step: Build | Build Main Project con il risultato di compilare il file .java
e di generare il file .class
- 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:
- File | New File e il Wizard che segue
- File | Empty Java File
Per ottenere il massimo risultato con il minimo sforzo vi suggerisco la scorciatoia con i tasti funzione:
- F9 per compilare il file(=javac)
- Shift+F6 (=java) per eseguirlo
Pubblicato in Procedure | Non ci sono Commenti »
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).
- Java, ovvero il fenomeno mass-mediatico
- Java, ovvero un satori
Il catalogo è questo, anzi il decalogo è questo:
- Architectur neutral
- Distribuited
- Dynamic
- High Performance
- Multithreaded
- Object-Oriented
- Portable
- Robust
- Secure
- Simple
La Java Platoform è strutturata in due componenti
- JVM, ovvero Java Virtual Machine
- 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” ?
- javac: il compilatore
- java: l’esecutore
- javadoc: la documentazione.
Cosa sono le “Deployment Technologies”?
- Java Web Start software
- Java Plug-in software
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
- SWING
e
- Java2D
Cosa sono le “Integration Libraries”?
- Java IDL API
- JDBC API(Java DataBase Connectivity)
- JNDI API (Java Naming and Directory Interface)
- Java RMI (Remore Method Invocation)
- 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
Pubblicato in Procedure | Non ci sono Commenti »
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.
- Dopo la lettura di questo Post imparerete ad usare l’API di JDBC
- per creare semplici tabelle
- ad inserire valori in esse
- porre delle query alle tabelle
- trovare record con le query
- e, “last but not least” imparerete ad aggiornare i dati delle tabelle
- Impareremo ad usare semplici comandi e soprattutto come compilarli
- Affronteremo anche un esempio di “Stored Procedure”
- Realizzeremo transazioni
- Eviteremo le “eccezioni” e i segnali di Warning
Ecco il primo frammento di codice Class.forName("org.apache.derby.jdbc.EmbeddedDriver")
- 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
Ecco un altro esempio di codice:
jdbc:derby:[propertyList]
che presuppone l’utilizzo di Derby come database Embedded.
- JDBC ci aiuta a scrivere applicazioni Java che gestiscono le seguenti attività oggetto di programmazione
- Connettersi ad un database
- Effettuare query e aggiornamenti con comandi SQL inviati al Database
- 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
Pubblicato in JDBC | Non ci sono Commenti »
Magpm6637o 19, 2008 by inviaggioconjava
Esploriamo il nodo dell’”Application Server” GlassfishV2.
Disconnettiamoci.
- Applications
- Enterprise Applications (non è un nodo, almeno per il momento)
- “Web Applications” è un nodo con 6 sottonodi denominati:
- “portletdriver” che comprende 10 “foglie”
- “amserver” che comprende 57 “foglie”
- “producer” che comprende 10 “foglie”
- “wsrp-producer-portlet” che comprende 3 foglie
- “consumer” che comprende 3 foglie
- “wsrp-consumer-portlet” che comprende 3 foglie
- “EJB Modules”
- “connector Modules”
- “App Client Modules”
“Resources”
- JDBC
- jdbc/sample
- jdbc/______TimerPool
- jdbc/______default
- jdbc/______callFlowPool
- Connection Pools
- ______CallFlowPool
- SamplePool
- ______TimerPool
- DerbyPool
- JMS Resources
- Connector Factpories
- Destination resources
- JavaMail Sessions
- JNDI
- Custom resources
- External resources
- Connectors
- Connector Resources
- Connector Connection Pools
- Admin Object Resources
- JVMs
- Access Manager
- Profiles
- Anonymous
…..
- Liberty SAMLToken
- JBI
- Service Engines (che comprende 4 foglie
- Binding Components (che comprende 3 foglie)
- Shared Libraries (che comprende 4 foglie)
- Service Assemblies
Pubblicato in NetBeans 6.1 | Non ci sono Commenti »
Magpm4454o 19, 2008 by inviaggioconjava
- Selezionare con il tasto sx. il nome dell’Application Server.
- Aprire il menu contestuale con il tasto dx. del mouse
- Il menu contestuale è suddiviso in quattro parti, eccole:
-
- Start
- Start in Debug Mode
- Start in Profile Mode
- () Restart
- () Stop
- Refresh
- View Admin Console
- View Server Log
- View Update Center
Esploriamo:Cliccare su START
- Primo Evento: “Starting GlassfishBV2″, questo è il messaggio che compare in basso a destra
- 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:
- Terzo Evento: in fondo alla videata compare il messaggio “Application server startup complete”
- Nel frattempo si dissolverà il messaggio in basso a destra: il nostro scopo è raggiunto: potete verificarlo in tre URL:
- scompare nel campo dell’URL il rinvio al file “login.jsf”
- si apre una videata ricca di informazioni denominata “Sun Java System Application Server Admin Console” con 3 frame
- a sinistra “Common Tasks” che rappresenta l’apice di una serie di nodi che se aperti evidenziano funzionalità
- Connettiamoci a Internet: si visualizzerà anche il frame dx. sottostante
- Puntiamo sulla seconda serie di pulsanti denominata “Update Center”
- “Getting Started Guide”
- 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
- Scompare dal campo dell’URL il rinvio al file “login.jsf”
- Si apre una videata ricca di informazioni denominata “Sun Java System Application Server Admin Console” con 3 frame:
- a sx. “Common Tasks” che rappresente la radice di una serie di nodi che se aperti evidenziano le loro specifiche funzionalità
- Connettiamoci a Internet: si visualizzerà anche il frame dx. sottostante
- Puntiamo sulla seconda serie di pulsanti denominata “Update Center”
- “Getting Started Guide”
- Nel mio caso alle ore GMT 16.46 di Lunedì 19 maggio 2008 ci sono ben “19 New Component(s) Available”
:
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:
Pubblicato in NetBeans 6.1 | Non ci sono Commenti »
Magam7747o 19, 2008 by inviaggioconjava
- Doppio click sull’icona del desktop
- 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”.
È divisa in quattro aree:
- In alto a sx. “Recent Projects”
- (in senso orario) “News & Tutorials
- Blogs
- Featured Demo
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:
- Window>Projects (Ctrl+1): si apre una colonna alla vostra sx. per il momento vuota
- Window>Files (Ctrl+2)
- 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:
- “Java DB” (rappresentato da un “cilindro grigio)
- “Drivers” (raffigurato da una cartella giallo-arancione) N.B. per default è presente un unico elemento denominato “JDBC-ODBC Bridge”
- Per default ci sono già tre Database
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
- Cliccare con il tasto dx. del mouse sull’icona
- L’unica possibilità che ci viene offerta è “Add Server…”
- Clicchiamo su Add Server>si apre una finestra denominata “Add Server Instance”: è divisa in due colonne:
- La colonna sx. presenta gli Steps della procedura
- Il primo ci invita a “Choose Server”
- 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
- Se lo selezioniamo verrà evidenziato da una linea blu e il suo nome comparirà nel textField in basso con l’etichetta “Name”
- 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
- 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
- Next
- È 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.
- Finish
- 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″
Pubblicato in NetBeans 6.1 | Non ci sono Commenti »