Professional Documents
Culture Documents
vrste
primena
Inicijalizacija atributa klase
Atributi se mogu inicijalizovati unutar
definicije klase u okviru statickih i ne
statickih inicijalizacionih blokova
Korišćenje inicijalizacionih blokova
konstruktor Airplane().
Neparametrizovani
Parametrizovani
Podrazumevani konstruktor
Ukoliko sami ne kreiramo konstruktor Java
kompajler ce automatski kreirati konstruktor
bez argumenata, za vreme run-time-a
Ovaj konstruktor je poznat I kao default ili
podrazumevani konstruktor
Podrazumevani konstruktor inicijalizuje sve
neinicijalizovane atribute (instancne
promenljive)
Podrazumevane vrednosti
Type Default Value
boolean False
byte 0
short 0
int 0
long 0L
char \u0000
float 0.0f
double 0.0d
object Reference null
Sintaksa
<ime_klase>()
{
}
Nema parametre
class DefaultConstructor {
int a;
boolean b;
this.licensePlate = licensePlate;
this.speed = speed;
if (maxSpeed > 0) this.maxSpeed = maxSpeed;
else this.maxSpeed = 0.0;
if (speed > this.maxSpeed) this.speed = this.maxSpeed;
if (speed < 0) this.speed = 0.0;
else this.speed = speed;
}
Konstruktor koji obezbedjuje da inicijalna
brzina uvek bude jedanaka nuli
Airplane(String licensePlate, double maxSpeed) {
this.licensePlate = licensePlate;
this.speed = 0.0;
if (maxSpeed > 0) this.maxSpeed = maxSpeed;
else this.maxSpeed = 0.0;
primer
class Vehicle {
int wheels;
Vehicle(int wheels){
this.wheels = wheels;
System.out.println(wheels + " wheeler vehicle created.");
}
brojac = 0;
}
}
Preopterecenje konstruktora
Konstruktoru mozemo proslediti parametar
inicijalizacije koji omogucava da brojac
moze brojati od raznih pocetnih vrednosti
Public brojac( int broj) {
brojac = broj;
}
}
primer
class Company {
String domainName;
public Company() {
this.domainName = "default";
}
public Company(String domainName){
this.domainName = domainName;
}
public void getName(){
System.out.println(this.domainName);
}
public static void main(String[] args) {
Company defaultObj = new Company();
Company CompanyObj = new Company(“ Libero");
defaultObj.getName();
CompanyObj.getName();
}
}
Poziv konstruktora iz drugog
konstruktora
Jedan konstruktor klase može pozivati drugi
konstruktor te klase u svojoj prvoj izvršnoj
naredbi. Time se često može uštedeti na
ponovnom pisanju koda.
Za referisanje drugog konstruktora iste klase
koristi se this kao ime metoda praćen
odgovarajućim argumentima između zagrada
Ključna reč this u
konstruktorima
Česta je praksa da overloaded metode budu
suštinski iste, ali neka od njih definiše default
vrednosti za jedan ili više argumenata.
U tom slučaju dobro je (iako neznatno
sporije) da svu programsku logiku stavite u
metodu koja uzima najviše argumenata i
onda jednostavno pozivate tu metodu iz svih
overloaded varijanti koje uglavnom
popunjavaju odgovarajuće default vrednosti.
Ključna reč this u
konstruktorima
class Airplane
{ String licensePlate; // npr. " AN–067-TB "
double speed; // u kilometrima na sat
double maxSpeed; // u kilometrima na sat
Airplane()
{
this.licensePlate = “ ";
this.speed = 0.0;
this.maxSpeed = 1200.0;
}
Ključna reč this u
konstruktorima
Airplane(String licensePlate, double speed, double maxSpeed)
{
this.licensePlate = licensePlate;
this.speed = speed;
if (maxSpeed > 0) this.maxSpeed = maxSpeed;
else this.maxSpeed = 0.0;
if (speed > this.maxSpeed) this.speed = this.maxSpeed;
if (speed < 0) this.speed = 0.0;
else this.speed = speed; }
Ključna reč this u
konstruktorima
Airplane(String licensePlate, double maxSpeed)
{
this.licensePlate = licensePlate;
this.speed = 0.0;
if (maxSpeed > 0) this.maxSpeed = maxSpeed;
else this.maxSpeed = 0.0;
}
public Airplane(String licensePlate, double maxSpeed)
{
Airplane(licensePlate, 0.0, maxSpeed);
//ovo nije legalno unutar konstruktora!!!
}
Za pozivanje drugog konstruktora iste klase koristi se ključna reč this.
Getter metode
class TwoDPoint {
double x;
double y;
……
double getX() {
return this.x;
} double getY() {
return this.y; }
}
Setter I Getter metode
class OriginPrinter {
public static void main(String[] args) {
TwoDPoint origin;
origin = new TwoDPoint();
origin.setX(0.0);
origin.setY(0.0);
System.out.println("(" + origin.getX() + "," +
origin.getY() + ")");
}
}
ToString metoda
Opisuje predstavljanje (string predstava )objekta
prilikom ispisa na standardnom izlazu
Defineše se unutar klase kao javna metoda članica
Klasa koordinata
public class Koordinata
{
private double x;
private double y;
private double z;
}
toString
@Override
public String toString() {
// OPIS ATRIBUTA KLASE
return ("X= "+x+", Y= "+y+", Z=
"+z);
}
public class Glavna {
public static void main(String[] args) {
// kreira se objekat pozivom podrazumevanog
konstruktora
Koordinata k = new Koordinata();
//kada se redefinise toString()
//moguce je na ispis poslati celu koordinatu
System.out.println(k);
//BEZ toString(): Koordinata@a90653
//SA toString(): X= 0, Y=0, Z=0
}
}