• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/4

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

4 Cards in this Set

  • Front
  • Back
  • 3rd side (hint)
Source File Declaration Rules

Cap 01 - Pag 49
Un file sorgente contiene:
- UNA SOLA classe dichiarate "public" per file sorgente
- UNA o PIU' classi non dichiarate "public"

- Nome del file sorgente uguale al nome della classe "public", (Es. Pippo.java per la classe Pippo)

- Nome del file sorgente libero se non ci sono classi "public"

- Commenti all' inizio o alla fine di una linea di codice, posizionamento libero

Statement Ordering nel file sorgente:
1) (eventuale) statement "package"
2) (eventuali) statements "import"
3) Class declaration

- gli statement "import" e "package" si applicano a TUTTE le classi contenute nel file sorgente


- Packages nominati con "reverse domain name convention"
Modifiers

Cap 01 - Pag 50
Ogni classe, metodo e istanza è associata a 4 Access Control mediante 3 Access Modifiers (+ un default se non si esplicita l' Access Modifier)

Default Access Control:
- default/package

AM - Access Modifiers:
- "public"
- "protected"
- "private"

NAM - Non Access Modifiers:
es. : strictfp, final, and abstract
Class Declaration and Access

Cap 01 - Pag 51
Default Class Declaration:

[AM] [*NAM] class MyClass() { }

AM:
- "public", accesso/visibilità da TUTTE le classi di TUTTI i packages
- default/package, nessun AM nella Class Declaration, accesso/visibilita SOLO dalle classi nello STESSO package

NAM:
-"abstract", la classe NON PUO' essere istanziata, ma solo estesa
-"final", NESSUNA altra classe può estendere la classe e fare override dei metodi
-"strictfp"

Class Access (o Visibility):
- Una classe A può creare un istanza di una classe B
- Una classe A può estendere una classe B
- Una classe A può accedere a metodi e variabili di una classe B (in base ai relativi AM)

N.B.
- [AM] abstract final myClass() { } NON compila
- Abstract Method Signature example: public abstract void goFast();
- public abstract void goFast() {}; NON compila
- Una classe astratta può contenere metodi non astratti, ma NON viceversa
NAM "strictfp" :
Marking a class (or method) as strictfp means that any method code in the class (code in the method) will conform to the IEEE 754 standard rules for floating points.
Declaring an Interface

Cap 01 - Pag 57
- Implementate da QUALSIASI classe in QUALSIASI ramo ereditario.

- Sono equivalenti al 100% ad una Classe Astratta con tutti e soli i metodi astratti.

- Un interfaccia può estendere SOLO altre interfacce, ma NON PUO' implementare altre interfacce

- I metodi sono implicitamente "public abstract" es:
void bounce(); equivale a public abstract void bounce();

- i metodi quindi NON possono essere firmati con "static", "final", "private", "protected", "native", "strictfp"

- In un interfaccia Si possono dichiarare SOLO costanti

- Le costanti sono implicitamente,"public static final" es:
int BAR = 42; equivale a public static final int BAR = 42;
When you create an interface, you're defining a contract for what a class can do,
without saying anything about how the class will do it. An interface is a contract.