Componente. Analiză (funcţională / OO) Descompunere. Sub-funcţie B

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Componente. Analiză (funcţională / OO) Descompunere. Sub-funcţie B"

Transkript

1 Extras Curs ISw / //00 00 Extras curs ISw.doc Proces de construcţie prin descompunere-reunire (top-down) generic Specificatii Descompunere funcţională ierarhică Funcţie principală Analiză (funcţională / OO) Proiect Descompunere (funcţională / OO) Componente Produs Construcţie a Compunere componentelor (integrare) Descompunere în societati de obiecte Actionare Buton Aprindere Sub-funcţie A Sub-funcţie B Deplasare Utilizator Deschidere Lift Cabină Sub-funcţie A Sub-funcţie A Sub-funcţie B Sub-funcţie B (sistem) Uşă. Clasa = tipul (domeniul de definitie) pentru variabile numite obiecte. ul = reprezentare abstractă a unor entităţi reale sau virtuale, caracterizată de: - identitate, prin care e deosebit de alte obiecte, implementata ca variabila referinta la obiect, - comportament (vizibil), accesibil altor obiecte, implementata ca set de functii membru = operatii, metode, - stare internă (ascunsă), proprie obiectului, implementata ca set de variabile membru = atribute, campuri.. Definitia clasei in Java: class Nume { // declaratie tip de date / structura de date tip atribut; // declaratie variabila membru, camp Java tipreturnat operatie(tipparametru parametruformal) { // semnatura metoda Java // corpul functiei membru (metodei) returneaza valoare de tipul tipreturnat. Declararea variabilei referinta la un obiect Java si crearea dinamica a obiectului: NumeClasa nume; // declararea variabilei referinta la obiect nume = new NumeClasa(tipParametru parametruactual); // crearea dinamica a obiectului operatie(parametruformal : tipparametru) : tipreturnat - UML: clasa obiectul: public class Point { // atribute (variabile membru) private int x; private int y; // operatie care initializeaza atributele = constructor Java public Point(int abscisa, int ordonata) { x = abscisa; y = ordonata; // operatii care modifica atributele = metode (functii membru) public void moveto(int abscisanoua, int ordonatanoua) { x = abscisanoua; y = ordonatanoua; public void movewith(int deplasareabsc, int deplasareord) { x = x + deplasareabsc; y = y + deplasareord; // operatii prin care se obtin valorile atributelor = metode Java public int getx() { return x; public int gety() { return y; 0 0 atribut : tip Nume Declaratii (specificare) variabile Semnaturi (declaratii, specificari) operatii + Implementari (corpuri) operatii public class RunPoint { // clasa de test pentru clasa Point private static Point puncta; // atribut de tip Point public static void main(string[] args) { // declaratie metoda // corp metoda puncta = new Point(, ); // alocare si initializare atribut puncta puncta.moveto(, ); // trimitere moveto() catre puncta puncta.movewith(, ); // trimitere movewith() catre puncta Bec nume : NumeClasa

2 Extras Curs ISw / //00 00 Extras curs ISw.doc 0 RunPoint + main(). Crearea unui obiect p de tip Point ale carui atribute au valorile x= si respectiv y= : Point p = new Point(, ); ul p de tip Point incapsuleaza informatiile unui punct in plan de coordonate {,. Starea obiectului p este perechea de coordonate {,.. Schimbarea starii obiectului p in {,, prin deplasarea ordonatei (departarea cu de abscisa). Point p = new Point(, ); p.moveto(, ); x = y =. Mesajul selecteaza operatia si declanseaza comportamentul (activeaza operatia, prin invocarea / apelul metodei / functiei membru): RunPoint Point - x : int - y : int -puncta + Point(abscisa : int, ordonata : int) + moveto(abscisanoua : int, ordonatanoua : int) : void + getx() : int + gety() : int + movewith(deplasareabsc : int, deplasareord : int) : void p : Point x = y = : moveto(, ) : movewith(, ) p : Point dupa operatia moveto(,) puncta : Point moveto() Mesajul selecteaza comportamentul movewith(). Starea si comportamentul sunt dependente. Comportamentul la un moment dat depinde de starea curenta. Starea poate fi modificata prin comportament. Aterizare x = y = p : Point : Avion In zbor : Turn de control Decolare : Avion La sol In starea In zbor doar comportamentul Aterizare e posibil. El duce la schimbarea starii (in La sol ). Dupa aterizare, starea fiind La sol, operatia Aterizare nu mai are sens.. Sistemele software OO sunt societăţi de obiecte care colaborează pentru a realiza funcţiile aplicaţiei. Decuplare intre obiecte utilizator Referinţă Legătură Mesaj Interacţiune a obiectelor Comunicaţie între obiecte Operaţie Declanşare (executie) tinta comportament global al sistemului (scenarii = secvenţe de e = colaborări între obiecte) Colaborare între obiecte

3 Extras Curs ISw / //00 00 Extras curs ISw.doc Elementele declaratiilor: import java.util.vector; // clase importate import java.util.emptystackexception; public class Stack // declaratia clasei { // inceputul corpului clasei private Vector elemente; // atribut (variabila membru) public Stack() { // constructor 0 elemente = new Vector(0); // (functie de initializare) public Object push(object element) { // metoda elemente.addelement(element); // (functie membru) return element; public synchronized Object pop(){ // metoda int lungime = elemente.size(); // (functie membru) 0 Object element = null; if (lungime == 0) throw new EmptyStackException(); element = elemente.elementat(lungime - ); elemente.removeelementat(lungime - ); return element; public boolean isempty(){ // metoda if (elemente.size() == 0) // (functie membru) 0 return true; else return false; // sfarsitul corpului clasei Declaratia de clasa [public] [abstract] [final] class NumeClasa [extends NumeSuperclasa] [implements NumeInterfata [, NumeInterfata]] { // Corp clasa Declaratia de camp (atribut) [nivelacces] [static] [final] tipatribut numeatribut; Declaratia de constructor [nivelacces] NumeClasa( listaparametri ) { // Corp constructor Declaratia de metoda (operatie) [nivelacces] [static] [abstract] [final] [synchronized] tipreturnat numemetoda ( [listadeparametri] ) [throws NumeExceptie [,NumeExceptie] ] { // Corp metoda Scopul variabilelor

4 Extras Curs ISw / //00 00 Extras curs ISw.doc Exemplu 0 0 public class Complex // declaratia clasei { // inceputul corpului clasei private double real; // real = atribut (camp) private double imag; // imag = atribut (camp) public void setreal(double real) { this.real = real; public void.setimag(double imag) { this.imag = imag; // metoda, real = parametru // real = atributul, real = parametrul // metoda, imag = parametru // imag = atributul, imag = parametrul public static void main(string[] args) { // metoda, args = parametru double real = Double.parseDouble(args[0]); // real = variabila locala double imag = Double.parseDouble(args[]); // imag = variabila locala Complex c = new Complex(); c.setreal(real); c.setimag(imag); // c = variabila locala // c, real = variabilele locale // c, imag = variabilele locale System.out.println("{" + c.real + // c.real = atributul lui c ", " + c.imag + ""); // c.imag = atributul lui c // sfarsitul corpului clasei Clasa contine generalitatile (abstractiile generale), obiectele contin particularitatile (detaliile particulare). = generalităţi (elemente, aspecte, caracteristici comune) Clasă = particularităţi (elemente, aspecte, caracteristici diferite) O parte din codul clasei DatagramPacket (continuturile anumitor metode au fost simplificate): package java.net; // Importul pachetulului de clase Java pentru comunicatii IP public final class DatagramPacket { // incapsuleaza pachete UDP (datagrame) // Atribute, accesibile tuturor claselor din pachetul (directorul) java.net byte[] buf; // tabloul de octeti care contine datele pachetului int offset; // indexul de la care incep datele pachetului int length; // numarul de octeti de date din tabloul de octeti int buflength; // lungimea tabloului de octeti InetAddress address; // adresa IP a masinii sursa/destinatie a pachetului int port; // portul UDP al masinii sursa/destinatie a pachetului // Constructori initializeaza obiectele de tip DatagramPacket // Initializeaza un DatagramPacket pentru pachete de receptionat, public DatagramPacket(byte buf[], int length) { this.buf = buf; this.length = length; this.buflength = length; this.offset = 0; this.address = null; this.port = -; // Initializeaza un DatagramPacket pentru pachete de trimis public DatagramPacket(byte buf[], int length, InetAddress address, int port) { this.buf = buf; this.length = length; this.buflength = length; this.offset = 0; this.address = address; this.port = port; // Alti constructori, alte metode... // Returneaza adresa IP a masinii sursa/destinatie a acestui pachet public synchronized InetAddress getaddress() { return this.address; // Stabileste adresa IP a masinii sursa/destinatie a acestui pachet public void setaddress(inetaddress iaddr) { this.address = iaddr;

5 Extras Curs ISw / //00 00 Extras curs ISw.doc Cod care utilizeaza clasa DatagramPacket: byte[] buffer = new byte[0]; // buffer date (de trimis/primit) DatagramPacket packetdetrimis = new DatagramPacket(buffer, buffer.length, InetAddress.getByName( nume.elcom.pub.ro ), 000); DatagramPacket packetdereceptionat = new DatagramPacket(buffer, buffer.length); Specificatia generala a unei clase Complex (interfata publica) = API-ul (Application Programming Interface): public class Complex { // Atribute private (ascunse, inaccesibile din exteriorul clasei) // Constructor initializeaza obiectele de tip Complex public Complex(double real, double imag) { // Implementare public double getreal() { // Implementare // Returneaza partea reala public double getimag() { // Implementare // Returneaza partea imaginara public double getmodul() { // Implementare // Returneaza modulul public double getfaza() { // Implementare // Returneaza faza Urmatorul cod Java va conduce la acelasi rezultat, indiferent de implementarea clasei Complex: Complex c = new Complex(, -); System.out.println( Coordonatele carteziene: { + c.getreal() +, + c.getimag() + ); System.out.println( Coordonatele polare: { + c.getmodul() +, + c.getfaza() + ); Implementarea carteziana a clasei Complex (atributele ascunse sunt coordonatele carteziene): public class Complex { private double real; // partea reala (abscisa) private double imag; // partea imaginara (ordonata) public Complex(double real, double imag) { this.real = real; this.imag = imag; public double getreal() { return this.real; public double getimag() { return this.imag; 0 public double getmodul() { return Math.sqrt(this.real*this.real + this.imag*this.imag); public double getfaza() { return Math.atan(this.real, this.imag); Implementarea polara a clasei Complex (atributele ascunse sunt coordonatele polare): public class Complex { private double modul; // modulul (raza) private double faza; // faza (unghiul) public Complex(double real, double imag) { this.modul = Math.sqrt(real*real + imag*imag); this.faza = Math.atan(real, imag); public double getreal() { return this.modul*math.cos(this.faza); public double getimag() { return this.modul*math.sin(this.faza); 0 public double getmodul() { return this.modul; public double getfaza() { return this.faza; In cazul de mai sus: specificaţia nu este afectată de schimbarea reprezentării interne (polară sau carteziană), obiectele utilizator al obiectelor instanţe ale clasei numerelor complexe cunosc doar specificaţia şi nu sunt nici ele afectate de schimbarea reprezentării interne. Agregarea exprimă cuplajul strâns între clase (subordonare: master-slave, întreg-părţi, ansamblu-componentă ). ClasaAgregat java.lang.system +out ClasaSubordonata In UML: Exemplu: java.io.printstream + println()

6 Extras Curs ISw / //00 00 Extras curs ISw.doc Mostenirea in UML: java.lang.object + tostring() + equals() +...() ClasaNoua ClasaAbstracta + metodaneimplementata() : void ClasaConcreta + metodaneimplementata() : void metodaneimplementata() este aici implementata! Declaratia: class NumeClasa { // urmeaza corpul clasei... este echivalenta cu: class NumeClasa extends Object { // urmeaza corpul clasei... Metoda tostring() // Implementarea implicita a metodei tostring(), mostenita de la clasa Object public String tostring() { // (nu returneaza continutul ci numele clasei si codul obiectului!) return getclass().getname() + "@" + Integer.toHexString(hashCode()); Metoda equals() implicita // Implementarea implicita a metodei equals(), mostenita de la clasa Object public boolean equals(object obj) { return (this == obj); // (nu compara continutul ci referintele!!!) Metoda equals() din clasa String 0 0 // Implementarea explicita a metodei equals() in clasa String public boolean equals(object obj) { // se verifica existenta unui parametru (obiect) non-null // si faptul ca parametrul e obiect al clasei String if ((obj!= null) && (obj instanceof String)) { String otherstring = (String)obj; // conversie de tip int n = this.count; if (n == otherstring.count) { // se compara numarul de caractere char v[] = this.value; char v[] = otherstring.value; int i = this.offset; int j = otherstring.offset; while (n--!= 0) if (v[i++]!= v[j++]) return false; // se compara caracterele return true; return false; Clasa abstracta, de baza public abstract class Multime { // clasa declarata abstract protected Object[] elemente; // campuri declarate protected pentru a protected byte numarelem; // putea fi reutilizate in clasa derivata public Multime(Object[] elemente) { // parametru generic tip Object[] this.elemente = elemente; // acces la obiectul curent cu this numarelem = (byte) elemente.length; // conversie de tip de la int la byte 0 public abstract Multime intersectiecu(multime m); // declarata abstract (NEIMPLEMENTATA) // valoare returnata generica tip Multime public Object[] obtinereelemente() { // valoare returnata generica tip Object[] return elemente; // (MOSTENITA in clasa MultimeIntregi) public byte numarelemente() { // implementare de baza return numarelem; // (RESCRISA in clasa MultimeIntregi)

7 Extras Curs ISw / //00 00 Extras curs ISw.doc Clasa concreta, derivata public class MultimeIntregi extends Multime { public MultimeIntregi(Integer[] elemente) { // parametru concret tip Integer[] super(elemente); // apelul constructorului clasei de baza Multime public final Multime intersectiecu(multime m) { // declarata abstract in clasa de baza Integer[] elementeintersectie; // aici devine concreta (IMPLEMENTATA) int nrelemente = 0; for (int i=0; i< elemente.length; i++) for (int j=0; j< m.elemente.length; j++) 0 if (elemente[i].equals(m.elemente[j])) nrelemente++; int index = 0; elementeintersectie = new Integer[nrElemente]; for (int i=0; i< elemente.length; i++) for (int j=0; j< m.elemente.length; j++) if (elemente[i].equals(m.elemente[j])) elementeintersectie[index++] = new Integer(elemente[i].toString()); 0 return new MultimeIntregi(elementeIntersectie); public byte numarelemente() { // reimplementare cod (RESCRIERE) return (byte) elemente.length; // conversie de tip de la int la byte public boolean contine(int intr) { // metoda noua (EXTENSIE) for (int i=0; i< elemente.length; i++) { Integer inte = (Integer) elemente[i]; 0 if (inte.intvalue() == intr) { return true; return false; Extindere prin mostenire, supraincarcare a metodelor, rescriere a metodelor, ascundere a atributelor: 0 public class ClasaDeBaza { protected int atributmostenit; protected byte atributascuns; // atribut partajat cu subclasa // atribut corespunzator clasei de baza public void metodamostenitasupraincarcata() { // implementare corespunzatoare lipsei parametrilor public void metodamostenitasupraincarcata(int argument) { // implementare corespunzatoare parametrului de tip int public void metodarescrisa() { // implementare de baza 0 0 public class ClasaCareExtinde extends ClasaDeBaza { protected byte atributascuns; // atribut corespunzator subclasei protected long atributnou; // atribut nou, nepartajat cu clasa de baza public void metodarescrisa() { // reimplementare (rescriere a codului) public void metodanoua() { // metoda noua, nepartajata cu clasa de baza public class UtilizareClase { public static void main(string[] args) { ClasaDeBaza obiectdebaza = new ClasaDeBaza(); obiectdebaza.atributmostenit obiectdebaza.atributascuns // clasa de baza (extinsa) // utilizarea atributului partajat cu subclasa // utilizarea atributului din clasa de baza // apelurile metodelor (din clasa de baza) care supraincarca acelasi nume obiectdebaza.metodamostenitasupraincarcata() obiectdebaza.metodamostenitasupraincarcata(000) // apelul metodei din clasa de baza (implementare de baza) obiectdebaza.metodarescrisa()

8 Extras Curs ISw / //00 00 Extras curs ISw.doc 0 0 ClasaCareExtinde obiectextins = new ClasaCareExtinde(); obiectextins.atributnou obiectextins.atributmostenit obiectextins.atributascuns super.atributascuns // apelul metodei noi din subclasa obiectextins.metodanoua() // subclasa // utilizarea atributului nou // utilizarea atributului partajat // utilizarea atributului din subclasa // utilizarea atributului din clasa de baza // apelurile metodelor (din clasa de baza) care supraincarca acelasi nume obiectextins.metodamostenitasupraincarcata() obiectextins.metodamostenitasupraincarcata(000) // apelul metodei din subclasa (implementarea noua, rescrisa) obiectextins.metodarescrisa() // apelul metodei din clasa de baza (implementare de baza) super.metodarescrisa() Implementarea unei interfete de tip stiva: 0 0 public interface StackInterface { boolean empty(); void push( Object x); Object pop() throws EmptyStackException; Object peek() throws EmptyStackException; public class Stack implements StackInterface { private Vector v = new Vector(); // utilizeaza clasa java.util.vector public void push(object item) { v.addelement(item); public Object pop() { Object obj = peek(); v.removeelementat(v.size() - ); return obj; public Object peek() throws EmptyStackException { if (v.size() == 0) throw new EmptyStackException(); return v.elementat(v.size() - ); public boolean empty() { return v.size() == 0; public class Stack extends Vector implements StackInterface { public Object push(object item) { addelement(item); return item; public Object pop() { Object obj; int len = size(); obj = peek(); removeelementat( len - ); return obj; public Object peek() { int len = size(); if (len == 0) throw new EmptyStackException(); return elementat( len - ); public boolean empty() { return size() == 0; Vector v = new Stack(); // cod legal referinta la clasa de baza // poate fi initializata cu obiect din subclasa v.insertelementat(x, ); // cod legal dar inserarea unui obiect in stiva // incalca principiul de functionare al stivei Constrangeri ale tipurilor valorilor returnate (constrangeri similare exista pentru tipurile parametrilor) Tip nepermis Superclasa Tip posibil Subclasa public Number returnanumber() { //...

9 Extras Curs ISw / //00 00 Extras curs ISw.doc Asocierile bidirectionale intre doua clase corespund situatiei in care ambele clase au referinte una catre cealalta. Diagrama UML: ConstructiePachet producator consumator LivrarePachet + crearepachet() + trimiterepachet() public void crearepachet() { // creare consumator.trimiterepachet() public void TrimiterePachet() { // trimitere producator.crearepachet() are drept corespondent codul Java: public class ConstructiePachet { LivrarePachet consumator; public void crearepachet( /* eventuali parametri */ ) { // creare consumator.trimiterepachet() public class LivrarePachet { ConstructiePachet producator; public void trimiterepachet( /* eventuali parametri */ ) { // trimitere producator.crearepachet() Generalizarea = extragerea elementelor comune (atribute, operaţii şi constrângeri) ale unui ansamblu de clase într-o nouă clasă mai generală, denumită superclasă, - superclasa este o abstracţie a subclaselor ei, - arborii de clase sunt construiţi pornind de la frunze - utilizată cand elementele modelului au fost identificate, pentru a obţine o descriere detaşată a soluţiilor - semnifică "este un (fel de)" sau "este ca", şi priveşte doar clasele, adică nu este instanţiabilă Clasă Clasă Clasă nouă = superclasă (generalităţi, elemente comune) De fapt, generalizarea actioneaza in OO la doua niveluri: - clasele sunt generalizari ale ansamblurilor de obiecte (un obiect este de felul specificat de o clasa), - superclasele sunt generalizari de clase (obiectele de felul specificat in clasa sunt si de felul specificat in superclasa). Limbajele OO ofera ambele mecanisme de generalizare. Limbajele care ofera doar constructii numite obiecte (si eventual clase) se pot numi limbaje care lucreaza cu obiecte (si eventual clase). Specializarea = capturarea particularităţilor unui ansamblu de obiecte ale unei clase existente, noile caracteristici fiind reprezentate într-o nouă clasă mai specializată, denumită subclasă, - utilă pentru extinderea coerentă a unui ansamblu de clase - bază a programării prin extindere şi a reutilizării, noile cerinţe fiind încapsulate în subclase care extind în mod armonios (coerent) funcţiile existente Clasă nouă = subclasă (particularităţi, specializare) Clasă

10 Extras Curs ISw / //00 00 Extras curs ISw.doc Moştenirea = tehnică de generalizare oferită de limbajele OO pentru a construi o clasă pornind de la una sau mai multe alte clase, partajând atributele, operaţiile şi uneori constrângerile, într-o ierarhie de clase. Diagramei UML: ii corespunde codul Java: 0 0 # elemente : Object[] # numarelem : byte Multime + Multime(elemente : Object[]) + intersectiecu(m : Multime) : Multime + obtinereelemente() : Object[] + numarelemente() : byte public abstract class Multime { protected Object[] elemente; protected byte numarelem; public Multime(Object[] elemente) { this.elemente = elemente; numarelem = (byte) elemente.length; // clasa declarata abstract // parametru generic tip Object[] // acces la obiectul curent cu this // conversie de tip de la int la byte public abstract Multime intersectiecu(multime m); // metoda declarata abstract // valoare returnata generica tip Multime public Object[] obtinereelemente() { // valoare returnata generica tip Object[] return elemente; public byte numarelemente() { return numarelem; Multime # elemente : Object[] # numarelem : byte // implementare de baza + Multime(elemente : Object[]) + intersectiecu(m : Multime) : Multime + obtinereelemente() : Object[] + numarelemente() : byte MultimeIntregi MultimeDouble + MultimeIntregi(elemente : Integer[]) + intersectiecu(m : Multime) : Multime + numarelemente() : byte + contine(intr : int) : boolean Diagramei UML: ii corespunde codul Java: 0 public class MultimeIntregi extends Multime { + MultimeDouble(elemente : Double[]) + intersectiecu(m : Multime) : Multime public MultimeIntregi(Integer[] elemente) { // parametru concret tip Integer[] super(elemente); // apelul constructorului clasei de baza Multime cu super public final Multime intersectiecu(multime m) { // implementarea metodei // declarata abstract in clasa de baza Multime mnoua; Integer[] elementeintersectie; int nrelemente = 0; for (int i=0; i< elemente.length; i++) { for (int j=0; j< m.elemente.length; j++) { if (elemente[i].equals(m.elemente[j])) { nrelemente++;

11 Extras Curs ISw / //00 00 Extras curs ISw.doc int index = 0; elementeintersectie = new Integer[nrElemente]; for (int i=0; i< elemente.length; i++) { for (int j=0; j< m.elemente.length; j++) { if (elemente[i].equals(m.elemente[j])) { elementeintersectie[index++] = new Integer(elemente[i].toString()); mnoua = new MultimeIntregi(elementeIntersectie); return mnoua; public byte numarelemente() { return (byte) elemente.length; public boolean contine(int intr) { // metoda noua for (int i=0; i< elemente.length; i++) { Integer inte = (Integer) elemente[i]; if (inte.intvalue() == intr) { return true; return false; Diagramei UML: // reimplementare (rescriere cod) // conversie de tip de la int la byte MultimeIntregi + MultimeIntregi(elemente : Integer[]) + intersectiecu(m : Multime) : Multime + numarelemente() : byte + contine(intr : int) : boolean +intregi +intregi MultimeIntregiExtinsaPrinMostenire MultimeIntregiExtinsaPrinCompunere + MultimeIntregiExtinsaPrinMostenire(elemente : Integer[]) + sumaelemente() : int +$intregiderivati + MultimeIntregiExtinsaPrinCompunere(elemente : Integer[]) + sumaelemente() : int +$intregicompusi TestMultimeIntregi + main(args : String[]) : void + afisare(ia : Integer[]) : void + afisaredouble(da : Double[]) : void ii corespund codurile Java: - ale unei clase care extinde prin mostenire (extindere): 0 public class MultimeIntregiExtinsaPrinMostenire extends MultimeIntregi { public MultimeIntregiExtinsaPrinMostenire(Integer[] elemente) { super(elemente); public int sumaelemente() { // metoda noua int suma = 0; Integer[] ti = (Integer[]) elemente; // utilizare atribut mostenit elemente for (int i=0; i< ti.length; i++) { suma = suma + ti[i].intvalue(); return suma; - ale unei clase care extinde prin delegare (compunere):

12 Extras Curs ISw / //00 00 Extras curs ISw.doc 0 public class MultimeIntregiExtinsaPrinCompunere { public MultimeIntregi intregi; // obiect componenta public MultimeIntregiExtinsaPrinCompunere(Integer[] elemente) { intregi = new MultimeIntregi(elemente); public int sumaelemente() { // metoda noua int suma = 0; Integer[] ti = (Integer[]) intregi.obtinereelemente(); for (int i=0; i< ti.length; i++) { suma = suma + ti[i].intvalue(); return suma; - ale unei clase care permite testarea comportamentului (si compararea modului de utilizare) in cele doua cazuri: 0 0 public class TestMultimeIntregi { public MultimeIntregi intregi; public static MultimeIntregiExtinsaPrinMostenire intregiderivati; public static MultimeIntregiExtinsaPrinCompunere intregicompusi; public static void main(string[] args) { int i; Integer[] tabloua = { new Integer(), new Integer(), new Integer() ; MultimeIntregi multimea = new MultimeIntregi(tablouA); intregicompusi = new MultimeIntregiExtinsaPrinCompunere(tablouA); int suma = intregicompusi.sumaelemente(); System.out.println("Suma elementelor " + suma); intregiderivati = new MultimeIntregiExtinsaPrinMostenire(tablouA); suma = intregiderivati.sumaelemente(); System.out.println("Suma elementelor " + suma); Subclasele (clasele care extind prin mostenire) pot sa: - mareasca gradul de detaliere al obiectelor: - adaugand noi atribute, inexistente in clasa de baza (detaliere mai mare a starilor obiectelor in subclasa) - adaugand noi metode, inexistente in clasa de baza (detaliere mai mare a comportamentului in subclasa) - mareasca gradul de concretete a obiectelor: - implementand eventualele metode abstracte din clasa de baza (mai multa concretete a comportamentului) - introduca diferentieri ale obiectelor: - redeclarand unele atribute existente in clasa de baza (ascunderea hiding - atributelor cu acelasi nume), adica introducerea unei diferentieri a starii obiectelor din subclasa fata de cele din clasa de baza, - reimplementand unele metode existente in clasa de baza (rescrierea overriding - metodelor cu acelasi nume) adica introducerea unei diferentieri a comportamentului obiectelor din subclasa fata de clasa de baza Subclasele mostenesc toate: - atributele din clasa de baza care nu sunt ascunse prin redeclarare, - metodele din clasa de baza care nu sunt rescrise prin reimplementare. ele din subclasa au toate atributele declarate in clasa de baza, si pot utiliza toate metodele declarate in clasa de baza. Aceasta reutilizare a codului clasei de baza de catre subclase este principalul beneficiu al mostenirii. Subclasele nu mostenesc - constructorii clasei de baza (au constructori proprii), dar pot face apel la constructorii clasei de baza (daca se intampla acest lucru, apelul la constructorul clasei de baza, realizat prin apelul super(), trebuie sa fie prima declaratie din corpul constructorului subclasei), - atributele cu caracter global (static), - metodele cu caracter global (static). Membrii globali (statici) ai clasei de baza nu pot fi mosteniti de obiectele din subclasa (tin strict de clasa in care au fost declarati).

13 Extras Curs ISw / //00 00 Extras curs ISw.doc Descrierea unui caz de utilizare trebuie sa cuprinda urmatoarele elemente:. Numele cazului de utilizare (cat mai sugestiv, pentru a sintetiza cazul de utilizare). Ex. Autentificarea utilizatorului. Scurta descriere a cazului de utilizare. Ex. Utilizatorul ii transmite sistemului datele necesare autentificarii, si in caz de succes capata drept de acces la sistem.. Actori (entitati exterioare sistemului modelat, implicate in cazul de utilizare). Ex. Utilizatorul. Preconditii (conditiile necesare pentru declansarea cazului de utilizare). Ex. Sistemul e aflat in executie, cunoaste datele necesare autentificarii Utilizatorului si ii ofera Utilizatorului o modalitate de a-i transmite aceste date.. Evenimentul care declanseaza cazul de utilizare (modul in care incepe cazul de utilizare). Ex. Utilizatorul cere autentificarea de catre sistem.. Descriere a interactiunii dintre actori si fiecare caz de utilizare (scenariul principal). Ex. I. Utilizatorul transmite datele necesare autentificarii de catre sistem. II. Sistemul verifica autenticitatea datelor primite de la Utilizator. III. Sistemul prezinta un de confirmare catre Utilizator. IV. Utilizatorul capata acces la sistem.. Alternative la cazul de utilizare principal (scenariile alternative si situatiile exceptionale). Ex.. Daca sistemul nu este lansat, autentificarea nu poate avea loc.. Daca sistemul nu cunoaste datele de autentificare, autentificarea esueaza.. Daca utilizatorul transmite in mod eronat datele de autentificare, autentificarea esueaza.. Evenimentul care produce oprirea cazului de utilizare (modul in care se incheie cazul). Ex. Utilizatorului i se prezinta un de confirmare.. Postconditii (efectele incheierii cazului de utilizare). Ex. Utilizatorul are acces la sistem. Este important sa fie clar prezentate: - schimburile de informatii (parametrii interactiunilor) Ex. datele necesare autentificarii, de confirmare - originea informatiilor si ordinea schimbarii lor Ex. Utilizatorul transmite datele necesare autentificarii - repetitiile comportamentului, prin constructii pseudocod - situatiile optionale Ex. Utilizatorul alege unul dintre a) optiunea X, b) optiunea Y, apoi continua cu Conectare Utilizator AltUtilizator Conversatie Caz de utilizare - Conectare. Nume (cat mai sugestiv, pentru a sintetiza cazul de utilizare). Ex. Conectare. Scurta descriere. Ex. Clientul se conecteaza la server, care accepta conexiunea si se pregateste pentru tratarea clientului.. Actori (entitati exterioare sistemului modelat, implicate in cazul de utilizare). Ex. Utilizator.. Preconditii (conditiile necesare pentru declansarea cazului de utilizare). Ex. Serverul e aflat in executie. Clientul cunoaste adresa si numarul de port pe care asculta serverul.. Evenimentul care declanseaza cazul de utilizare. Ex. Utilizatorul lanseaza componenta client a sistemului.. Descriere a interactiunii dintre actori si fiecare caz de utilizare. Ex. I. Utilizatorul lanseaza componenta client a sistemului, care se conecteaza la serverul cunoscut. Serverul accepta conexiunea si se pregateste pentru tratarea clientului. II. Clientul ofera o interfata grafica utilizatorului. Alternative la cazul de utilizare principal. Ex. Daca serverul nu este lansat, conectarea esueaza, iar clientul anunta acest lucru utilizatorului.. Evenimentul care produce oprirea cazului de utilizare. Ex. Clientul prezinta utilizatorului o interfata grafica.. Postconditii (efectele incheierii cazului de utilizare) Ex. Sistemul este pregatit pentru ca utilizatorul sa poata conversa cu alti utilizatori prin interfeta grafica

14 Extras Curs ISw / //00 00 Extras curs ISw.doc Caz de utilizare - Conversatie. Nume Conversatie. Scurta descriere. Clientii preiau e de la utilizatori, le trimit catre server, care le difuzeaza catre toti clientii, iar acestia le prezinta catre utilizatori.. Actori Utilizatori. Preconditii Cazul de utilizare Conversatie s-a incheiat cu succes.. Evenimentul care declanseaza cazul de utilizare. Un utilizator scrie un in interfata grafica a clientului sau.. Descriere a interactiunii dintre actori si cazul de utilizare (Transmisie si receptie). I. Utilizatorul scrie ul in interfata grafica a clientului sau, clientul trimite ul la server. II. Clientul primeste inapoi ul difuzat de server, si prezinta ul in interfata grafica a utilizatorului. Alternativa la cazul de utilizare principal (Doar receptie). Clientul primeste ul trims de alt utilizator, difuzat de server, si prezinta ul in interfata grafica a utilizatorului sau.. Evenimentul care produce oprirea cazului de utilizare. Clientul a prezentat utilizatorului ul primit.. Postconditii Sistemul este pregatit pentru ca utilizatorul sa poata continua conversatia cu alti utilizatori prin intermediul interfetei grafice, sau pentru a incheia conversatia prin inchiderea interfetei grafice. Diagrama de secventa (MSC) si diagrama de comunicatie echivalenta faza de analiza, nivel sistem : Utilizator : SistemChat : AltUtilizator : : SistemChat : : Utilizator : : AltUtilizator Diagrama de secventa (MSC) faza de analiza, nivel subsisteme : Utilizator : Client : Server : Client : AltUtilizator

15 Extras Curs ISw / //00 00 Extras curs ISw.doc Diagrama de secventa (MSC) faza de analiza, nivel subsisteme, detaliere suplimentara : Utilizator : Server : TratareClient : Client : AltUtilizator lansare : Client conectare : TratareClient creare Conectare Conversatie Diagrama de secventa (MSC) faza de proiectare, nivel subsisteme, detaliere suplimentara : Utilizator client : ClientDeChat_v firtratare : TratareClientDeChat_v server : ServerDeChat_v altfirtratare : TratareClientDeChat_v altclient : ClientDeChat_v : AltUtilizator main() conectare run( ) transmisie() difuzare() Conectare Conversatie transmisie() transmisie() Trimitere si receptie Receptie transmisie() difuzare() transmisie() transmisie()

16 Extras Curs ISw / //00 00 Extras curs ISw.doc Diagrama de secventa (MSC) faza de proiectare, subsistemul client : ClientDeChat_v main() ClientDeChat_v() : Thread intextgrafic : outretea : inretea : JTextField DataOutputStream DataInputStream outtextgrafic : JTextArea run( ) start( ) gettext( ) writeutf( ) Conectare Conversatie flush( ) Trimitere si receptie readutf( ) append( ) Receptie readutf( ) append( ) Diagrama de secventa (MSC) faza de proiectare, subsistemul client : ServerDeChat_v firtratare : TratareClientDeChat_v ServerDeChat_v(int) inretea : DataInputStream outretea : DataOutputStream firdestinatie : TratareClientDeChat_v firdestinatie.outretea : DataOutputStream start run( ) difuzare() readutf( ) Conectare Conversatie writeutf( ) flush( ) writeutf( ) flush( ) Diagrama de clase subsistemul client JTextField (from swing) + gettext() -intextgrafic DataInputStream (from io) + readutf() -inretea ClientDeChat_v - proprietatisistem : Logical View::java::util::Properties - numeuser : Logical View::java::lang::String - adresalocala : Logical View::java::lang::String - portlocal : int + run() + ClientDeChat_v() + main() -$socket Socket (from net) -outtextgrafic JTextArea (from swing) + append() DataOutputStream (from io) + writeutf() + flush() -outretea

17 Extras Curs ISw / //00 00 Extras curs ISw.doc Diagrama de clase subsistemul client DataInputStream (from io) DataOutputStream (from io) Socket (from net) -socket + readutf() -inretea + writeutf() + flush() -outretea -socket ServerDeChat_v + ServerDeChat_v() + main() TratareClientDeChat_v - listafire : Logical View::java::util::Vector = new Vector () -firtratare + TratareClientDeChat_v() + run() - difuzare() Diagrama masinii de stari a clientului:. Firul de executie care trateaza evenimentele din interfata grafica: StareInitiala new Socket() AsteptareEveniment conectare ActionEvent Conversatie terminare StareFinala ^intextgrafic().settext("") IOException TrimitereMesaj entry/ = intextgrafic.gettext() do/ ^outretea.writeutf() IOException. Firul de executie care trateaza receptia elor de la server: AsteptareDateRetea = inretea.readutf() ReceptieMesaj do/ ^outtextgrafic.append() IOException IOException Diagrama masinii de stari (FSM) a serverului, firul de executie principal (acceptor de conexiuni) StareInitiala StareFinala AsteptareCereri acceptareclient server.accept() CreareFirServireClient

18 Extras Curs ISw / //00 00 Extras curs ISw.doc Diagrama masinii de stari (FSM) a serverului, firul de tratare a clientilor: StareInitiala AsteptareDateRetea = inretea.readutf() [ conditie = true ] / firdestinatie = listafire.nextelement ^firdestinatie.writeutf() DifuzareMesaj IOException [ conditie = false ] entry/ conditie = listafire.hasmoreelements() IOException StareFinala Diagrama de activitati (organigrama) a clientului, cu firele de executie pe coridoare de activitate separate: FirGrafic FirReceptie Creare socket Creare fluxuri IO Initializari conexiune Creare intrare grafica Creare iesire grafica Initializari grafice Lansare interfata grafica AsteptareEveniment Lansare fir receptie ActionEvent Citire intrare grafica de text AsteptareDateRetea do/ = intextgrafic.gettext() Citire intrare retea Trimitere catre server do/ ^outretea.writeutf() do/ = inretea.readutf() Scriere in intrarea grafica de text do/ ^intextgrafic.settext("") Scriere in iesirea grafica de text do/ ^outtextgrafic.append() IOException

19 Extras Curs ISw / //00 00 Extras curs ISw.doc

20 Extras Curs ISw / //00 00 Extras curs ISw.doc Diagrama de clase actualizata a clientului: JTextField (from swing) + gettext()() -intextgrafic -outtextgrafic JTextArea (from swing) + append() ClientDeChat_v - numeuser : Logical View::java::lang::String - adresalocala : Logical View::java::lang::String - portlocal : int - alticlienti : Logical View::java::util::Vector = new Vector () + run() + ClientDeChat_v() + main() Socket (from net) -$socket -inretea DataInputStream (from io) + readutf() -outretea DataOutputStream + writeutf() + flush() (from io) Diagrama de clase actualizata a serverului: DataOutputStream -socket Socket (from net) -socket DataInputStream (from io) + readutf() + writeutf() + flush() (from io) -inretea -outretea ServerDeChat_v + ServerDeChat_v() + main() TratareClientDeChat_v -firtratare- listaclienti : Logical View::java::util::Vector = new Vector () + TratareClientDeChat_v() + run() - difuzare() InfoClient nume : Logical View::java::lang::String adresa : Logical View::java::lang::String port : int + InfoClient() + tostring() + equals() -client

21 Extras Curs ISw / //00 00 Extras curs ISw.doc

22 Extras Curs ISw / //00 00 Extras curs ISw.doc

23 Extras Curs ISw / //00 00 Extras curs ISw.doc

24 Extras Curs ISw / //00 00 Extras curs ISw.doc

POO Laborator 3 Metode si constructori. Supraincarcarea numelor. Relatii intre clase: asocierea si utilizarea

POO Laborator 3 Metode si constructori. Supraincarcarea numelor. Relatii intre clase: asocierea si utilizarea Laborator POO - 2006 (draft) 2006-2007 1/12 11/7/2006 2006_POO_Lab_3_Main_v01.htm POO Laborator 3 Metode si constructori. Supraincarcarea numelor. Relatii intre clase: asocierea si utilizarea 3.1. Descrierea

Detaylı

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır. Stack Sınıfı (yığıt) java.util Class Stack java.lang.object java.util.abstractcollection java.util.abstractlist java.util.vector java.util.stack Stack (yığıt) sınıfı nesnelerin LIFO (last-input-first-output)

Detaylı

LED-uri integrate pentru indicarea starii sistemului Tümleşik Durum LED i. Carcasa turnata Muhafaza birimi. Grad de protectie IP67 Hava ısıtıcı / P67

LED-uri integrate pentru indicarea starii sistemului Tümleşik Durum LED i. Carcasa turnata Muhafaza birimi. Grad de protectie IP67 Hava ısıtıcı / P67 Avantaje: Vedere de ansamblu asupra sistemului Afisaj in timp real Pachet software stabil PC industrial Constructie modulara Transfer de date la viteza mare Autodiagnoza a defectelor Raport privind parametri

Detaylı

CharArrayReader. Kılgıladığı Arayüzler: Bildirimi: Değişkenleri (fields): java.io.reader Sınıfından Kalıtsal Gelen Değişken:

CharArrayReader. Kılgıladığı Arayüzler: Bildirimi: Değişkenleri (fields): java.io.reader Sınıfından Kalıtsal Gelen Değişken: CharArrayReader java.lang.object java.io.reader java.io.chararrayreader Kılgıladığı Arayüzler: Closeable, AutoCloseable, Readable Bildirimi: public class CharArrayReader extends Reader Karekter giriş akımı

Detaylı

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/ Ana Main Kodları /*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/ package javaapplication1; public class JavaApplication1 public static void

Detaylı

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1 Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit

Detaylı

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. 1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. [10 puan] int param = 30; int result = 300; if (param > 45) result

Detaylı

JAVA ile DAĞITIK PROGRAMLAMA

JAVA ile DAĞITIK PROGRAMLAMA KARADENİZ TEKNİK ÜNİVERSİTESİ Bilgisayar Mühendisliği Bölümü Bilgisayar Sistemleri Laboratuarı JAVA ile DAĞITIK PROGRAMLAMA 1. Giriş JAVA, ağdaki programların haberleşmesi için TCP ve UDP olmak üzere iki

Detaylı

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

Java ile Nesneye Yönelik Programlama (Object Oriented Programming) Java ile Nesneye Yönelik Programlama (Object Oriented Programming) Giriş Yrd. Doç. Dr. Aybars UĞUR Örnek 1 Bir Yolcu sınıfı, yolcu1 nesnesi oluşturulması ve kullanılması class Yolcu String ad; String soyad;

Detaylı

Dağıtık Sistemler CS5001

Dağıtık Sistemler CS5001 Dağıtık Sistemler CS5001 Th. Letschert Çeviri: Turgay Akbaş TH Mittelhessen Gießen University of Applied Sciences Dağıtık Programlar ve Uygulamalar II - - 2 Katman / 3 Adım Yaklaşımı Dağıtık Programlar

Detaylı

Class PriorityQueue. Class PriorityQueue<E> java.lang.object java.util.abstractcollection<e> java.util.abstractqueue<e> java.util.

Class PriorityQueue. Class PriorityQueue<E> java.lang.object java.util.abstractcollection<e> java.util.abstractqueue<e> java.util. Class PriorityQueue java.util Class PriorityQueue java.lang.object java.util.abstractcollection java.util.abstractqueue java.util.priorityqueue Parametre tipleri: E - the type of elements held

Detaylı

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Örneğin; bir öğrenci, sıra, çember, bir buton birer nesnedir. Bir

Detaylı

Bir c sınıfının doğal sıralaması ile tutarlı olması (be consistent with equals) demek, c sınıfı içindeki her e1 ve e2 nesnesi için

Bir c sınıfının doğal sıralaması ile tutarlı olması (be consistent with equals) demek, c sınıfı içindeki her e1 ve e2 nesnesi için Interface Comparable java.lang Interface Comparable Altarayüzleri Delayed, Name, ScheduledFuture Kılgılayan Sınıflar: Authenticator.RequestorType, BigDecimal, BigInteger, Boolean, Byte, ByteBuffer,

Detaylı

ByteArrayOutputStream

ByteArrayOutputStream ByteArrayOutputStream java.io java.lang.object java.io.outputstream java.io.bytearrayoutputstream Kılgıladığı Arayüzler: Closeable, Flushable, AutoCloseable public class ByteArrayOutputStream extends OutputStream

Detaylı

Java Programlama Dilinde Veri Tipleri. Yrd. Doç. Dr. Aybars UĞUR

Java Programlama Dilinde Veri Tipleri. Yrd. Doç. Dr. Aybars UĞUR Java Programlama Dilinde Veri Tipleri Yrd. Doç. Dr. Aybars UĞUR Metoda Temel Veri Tipi Gönderme Java daki 8 Temel veri tipi (boolean, char, byte, short, int, long, float, double). public class OrnekTemelTip

Detaylı

Progress Barlı, FTP Dosya Upload Appleti

Progress Barlı, FTP Dosya Upload Appleti FTP ile dosya etmek kolay ancak bunu bir progressbar (yükleniyor barı) ile yapmak biraz karışık olabilir. Bir kaç java class yapısı kullanarak yazmak daha sonra bu klasları başka yerdede kullanabilmenize

Detaylı

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

Bire-bir Sahiplik İlişkisi ile İlgili Sorular: Bire-bir Sahiplik İlişkisi ile İlgili Sorular: Soru 1: Bir füzenin kilometre cinsinden menzili ve kilogram cinsinden ağırlığı mevcuttur. Bir füze ya kara hedefleri ya da hava hedefler için tasarlanır.

Detaylı

İÇİNDEKİLER VII İÇİNDEKİLER

İÇİNDEKİLER VII İÇİNDEKİLER İÇİNDEKİLER VII İÇİNDEKİLER 1 JAVA 8 NEDİR? 1 Java Nasıl Çalışır? 3 HOTSPOT Teknolojisi Nedir? 5 Çöp Toplayıcı (GarbageCollector) Nedir? 5 Jar Nedir? 6 Java Geliştirme Ortamı 7 Açıklama Satırıları 8 Nesnel

Detaylı

BufferedReader. Kılgıladığı Arayüzler: Closeable, AutoCloseable, Readable. Altsınıfları: LineNumberReader. Bildirimi: public class BufferedReader

BufferedReader. Kılgıladığı Arayüzler: Closeable, AutoCloseable, Readable. Altsınıfları: LineNumberReader. Bildirimi: public class BufferedReader BufferedReader java.io java.lang.object java.io.reader java.io.bufferedreader Kılgıladığı Arayüzler: Closeable, AutoCloseable, Readable Altsınıfları: LineNumberReader Bildirimi: public class BufferedReader

Detaylı

BİL132 Bilgisayar Programlama II

BİL132 Bilgisayar Programlama II BİL132 Bilgisayar Programlama II 8. Olağandışı durumlar (exceptions) Hacettepe Üniversitesi Bilgisayar Mühendisliği Bölümü Yüksel Tarhan Olağandışı durum Kütük bulunamadı Diskte yer kalmadı Nesne referans

Detaylı

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ Java programlama dili, Java SUN bilgisayar şirketi tarafından 1991 yılında geliştiril Program bloklar halinde yazılır ve bloklar { } ile oluşturulur. Komutlar aynı satıra

Detaylı

Veri Yapıları ve Algoritmalar 2006-2007 2.dönem

Veri Yapıları ve Algoritmalar 2006-2007 2.dönem Veri Yapıları ve Algoritmalar 2006-2007 2.dönem Öğretim Elemanları: Dr. A. Şima Etaner-Uyar Dr. Gülşen Cebiroğlu-Eryiğit Dersle ilgili bilgiler Ders Kitabı Data Structures and Algorithms in Java, 4th Ed.,

Detaylı

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator Interface Comparator java.util Interface Comparator Kılgılayan sınıf: Collator Bildirimi: public interface Comparator Comparator arayüzü Java Collections Framework un bir üyesidir. Bir nesneler koleksiyonu

Detaylı

InputStream Sınıfı. Class InputStream. java.io. java.lang.object java.io.inputstream. Kılgıladığı Arayüzleri: Closeable, AutoCloseable

InputStream Sınıfı. Class InputStream. java.io. java.lang.object java.io.inputstream. Kılgıladığı Arayüzleri: Closeable, AutoCloseable InputStream Sınıfı java.io Class InputStream java.lang.object java.io.inputstream Kılgıladığı Arayüzleri: Closeable, AutoCloseable Altsınıfları: AudioInputStream, ByteArrayInputStream, FileInputStream,

Detaylı

Spring Framework Eğitimi

Spring Framework Eğitimi Hazırlayan: Barış Dere @BarisDere baris.dere@gmail.com Spring Framework Eğitimi Ders 2: Http://www.youtube.com/barisdere Ders içeriği Spring IoC container tanıtımı Spring IoC container çalışma şekli Metadata

Detaylı

Yigin & Kuyruk {\} /\ Suhap SAHIN Onur GÖK

Yigin & Kuyruk {\} /\ Suhap SAHIN Onur GÖK Yigin & Kuyruk 0 {\ /\ Suhap SAHIN Onur GÖK Yıgın (Stack) son giren ilk çıkan LIFO ilk giren son çıkan Yıgın islemleri(so) ekle push 31 stack overflow 24 31 U U 34 34 3 3 S S Yıgın islemleri(so) al pop

Detaylı

Scanner Sınıfı. Class Scanner. java.util. java.lang.object java.util.scanner. Kılgıladığı Arayüzler: Closeable, AutoCloseable, Iterator<String>

Scanner Sınıfı. Class Scanner. java.util. java.lang.object java.util.scanner. Kılgıladığı Arayüzler: Closeable, AutoCloseable, Iterator<String> Sınıfı java.util Class java.lang.object java.util. Kılgıladığı Arayüzler: Closeable, AutoCloseable, Iterator Bildirimi: public final class extends Object implements Iterator, Closeable

Detaylı

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ Amaçlar: 1- Arayüzler (Interfaces) 2- Soyut Sınıflar ve Metotlar(Abstract classes and methods) Uygulama-1: interface:cihaz ac() kapat() goster(string) class: TV class: LCD class: Projector... Cihaz adındaki

Detaylı

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR KUYRUKLAR QUEUES Doç. Dr. Aybars UĞUR Giriş Bu bölümde gerçek yaşamdaki kuyrukların bilgisayardaki gösterimleri üzerinde durulacaktır. Kuyruklar, eleman eklemelerin sondan (rear) ve eleman çıkarmaların

Detaylı

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) BBS-515 Nesneye Yönelik Programlama Ders #9 (16 Aralık 2009) Geçen ders: Java Applet lerde bileşen yerleştirme türleri ( applet layouts

Detaylı

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58; BTEP212 Java DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI Lab7 bazen bir metodun içinde o metodun ait olduğu sınıftan yaratılacak nesneyi veya o nesnenin bir alt

Detaylı

Soket, bir sunucu programı ve bir veya birden çok istemci programı arasında çift yönlü iletişim kuran bir yazılım uç noktasıdır.

Soket, bir sunucu programı ve bir veya birden çok istemci programı arasında çift yönlü iletişim kuran bir yazılım uç noktasıdır. Bölüm 24 Java Ağ Uygulamaları 24.1 Java Soket Programlama Soket, bir sunucu programı ve bir veya birden çok istemci programı arasında çift yönlü iletişim kuran bir yazılım uç noktasıdır. Sunucu programı

Detaylı

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals The European Union s Making the Labour Market more Inclusive III programme For North Cyprus Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals Module

Detaylı

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance)

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance) İki Yöntem Komposizyon (Composition) Kalıtım (Inheritance) Komposizyon(Composition) class Meyva { } //... class Elma { } private Meyva m = new Meyva(); //... Komposizyon - UML Örnek Motor.java AileArabasi.java

Detaylı

Sınıfların Tekrardan Kullanılması. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 1

Sınıfların Tekrardan Kullanılması. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 1 Sınıfların Tekrardan Kullanılması Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 1 İki Yöntem Komposizyon (Composition) Kalıtım (Inheritance) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı

Detaylı

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java) 1 BİL-141 Bilgisayar Programlama I (Java) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu,

Detaylı

protected Reader() Karekter akımı okumak için Reader nesnesi yaratır. Yaratılan nesne kendi kendisiyle eşzamanlı olur.

protected Reader() Karekter akımı okumak için Reader nesnesi yaratır. Yaratılan nesne kendi kendisiyle eşzamanlı olur. Reader sınıfı java.lang.object java.io.reader Karekter akımlarını okuyan soyut (abstract) sınıftır. Soyut olmasına neden olan ve dolayısıyla alt sınıflarda kurulması gereken tek metodu read(char[], int,

Detaylı

İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu

İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu SORU 1 Dünyanın en uzun beş nehrini öğeleri olarak kabul eden bir yığıt (stack) yaratınız. Yığıtın üçüncü öğesini bulunuz. Yığıtın üstündeki öğeyi bulunuz ve

Detaylı

Foarte formal, destinatarul ocupă o funcţie care trebuie folosită în locul numelui

Foarte formal, destinatarul ocupă o funcţie care trebuie folosită în locul numelui - Introducere Română Turcă Stimate Domnule Preşedinte, Sayın Başkan, Foarte formal, destinatarul ocupă o funcţie care trebuie folosită în locul numelui Stimate Domnule, Sayın yetkili, Formal, destinatar

Detaylı

CONDIȚII DE UTILIZARE A APLICAȚIEI BiP

CONDIȚII DE UTILIZARE A APLICAȚIEI BiP Ultima actualizare: 23.02.2018 CONDIȚII DE UTILIZARE A APLICAȚIEI BiP Aceste condiții de utilizare (denumite în continuare Condiții de utilizare ) conțin condiții de utilizare a Aplicației BiP (denumite

Detaylı

// hataları işaret eden referans

// hataları işaret eden referans System sınıfı java.lang.object java.lang.system public final class System extends Object System sınıfı, java.lang paketi içindedir. Platformdan bağımsız olarak sistem düzeyindeki eylemleri belirleyen dingin

Detaylı

İlgili Konular: Object.equals(java.lang.Object), Object.hashCode(), rehash(), Collection, Map, HashMap, TreeMap, Serialized Form

İlgili Konular: Object.equals(java.lang.Object), Object.hashCode(), rehash(), Collection, Map, HashMap, TreeMap, Serialized Form Class Hashtable java.util Class Hashtable java.lang.object java.util.dictionary java.util.hashtable Kılgıladığı Arayüzler: Serializable, Cloneable, Map Altsınıfları: Properties, UIDefaults

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 5 Kuyruk VY ve ADT Basit Kuyruk (Simple Queue)

Detaylı

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ AD SOYAD: TESLİM TARİHİ: OKUL NO: TESLİM SÜRESİ: 1 hafta Ödev No: 2 1- A)

Detaylı

Đlgili konular: Collection, Set, HashSet, Comparable, Comparator, TreeMap, Collections.synchronizedSortedSet(SortedSet), Serialized Form

Đlgili konular: Collection, Set, HashSet, Comparable, Comparator, TreeMap, Collections.synchronizedSortedSet(SortedSet), Serialized Form Class TreeSet java.util Class TreeSet java.lang.object java.util.abstractcollection java.util.abstractset java.util.treeset Kılgıladığı arayüzler: Cloneable, Collection, Serializable, Set, SortedSet Bildirimi:

Detaylı

5 INTERACŢIUNI HTML...30

5 INTERACŢIUNI HTML...30 SO2 - Comunicatii si SO distribuite 1 3 COMUNICAŢII ÎNTRE SISTEME DE OPERARE ŞI SO DISTRIBUITE...2 3.1 ADRESĂRI ÎN INTERNET...2 3.1.1 Adrese IP şi clase de adrese...2 3.1.2 Adrese Internet; servere de

Detaylı

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu BBS515 Nesneye Yönelik Programlama Ders 2 Zümra Kavafoğlu https://zumrakavafoglu.github.io/ Bu derste neler öğreneceğiz? IntelliJ ile proje oluşturma Yorum satırları Sınıf deklarasyonu İsimlendirme kuralları

Detaylı

Alıştırmalar 2 - Dağıtık Sistemler. Alıştırma 2. Prof. Dr. Th. Letschert Çeviri: Turgay Akbaş FB MNI 16. Mai 2013

Alıştırmalar 2 - Dağıtık Sistemler. Alıştırma 2. Prof. Dr. Th. Letschert Çeviri: Turgay Akbaş FB MNI 16. Mai 2013 1 Prof. Dr. Th. Letschert Çeviri: Turgay Akbaş FB MNI 16. Mai 2013 Alıştırmalar 2 - Dağıtık Sistemler Alıştırma 1 1. Neden dağıtık algoritmalar ardışık algoritmaların aksine her zaman literatürde bir melin

Detaylı

EVO-JET brülör, kolay kurulum ve bakım için modüler yapıda imal edilmiştir.

EVO-JET brülör, kolay kurulum ve bakım için modüler yapıda imal edilmiştir. Arzătorul EVO-JET este construit în sistem modular astfel încât accesul şi mentananţa sunt uşor de efectuat. Acesta este amplasat pe şine şi poate fi mutat uşor în funcţie şi de spaţiul necesar pentru

Detaylı

Securitatea Conținutului Multimedia

Securitatea Conținutului Multimedia Securitatea Conținutului Multimedia Conf. dr. ing. Radu Ovidiu Preda www.comm.pub.ro/preda/scm Structura cursului Securitatea Conținutului Multimedia Cap. 1 Introducere în domeniul securităţii conținutului

Detaylı

Class HashMap. Class HashMap java.lang.object java.util.abstractmap java.util.hashmap. Kılgıladığı Arayüzler: Cloneable, Map, Serializable

Class HashMap. Class HashMap java.lang.object java.util.abstractmap java.util.hashmap. Kılgıladığı Arayüzler: Cloneable, Map, Serializable Class HashMap java.util Class HashMap java.lang.object java.util.abstractmap java.util.hashmap Kılgıladığı Arayüzler: Altsınıfları Bildirimi: Cloneable, Map, Serializable LinkedHashMap, PrinterStateReasons

Detaylı

MOBIL UYGULAMA GELIŞTIRME

MOBIL UYGULAMA GELIŞTIRME MOBIL UYGULAMA GELIŞTIRME PELIN YILDIRIM FATMA BOZYIĞIT YZM 3214 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Bu Derste Java Programlama (Crash Course) Class, Nesne, Metodlar, Overloading,

Detaylı

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI) MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI) Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web

Detaylı

Kılgıladığı arayüzler: Serializable, Cloneable, Map<K,V>, NavigableMap<K,V>, SortedMap<K,V>

Kılgıladığı arayüzler: Serializable, Cloneable, Map<K,V>, NavigableMap<K,V>, SortedMap<K,V> Class TreeMap java.util Class TreeMap java.lang.object java.util.abstractmap java.util.treemap Parametre tipleri: - the type of keys maintained by this map V - the type of mapped values ılgıladığı

Detaylı

Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir.

Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir. PART 5 5. Denetleyici Türleri Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir. Java Erişim Kontrol Denetleyicileri (Access Control Modifiers) Erişim Harici Denetleyiciler

Detaylı

WWW.OZTEKHABERLESME.COM

WWW.OZTEKHABERLESME.COM ÖZTEK HABERLEŞME APİ DÖKÜMANI WWW.OZTEKHABERLESME.COM VER:6.1.0 ~ 1 ~ İÇİNDEKİLER BİLMENİZ GEREKENLER... 3 HTTP POST (XML) YÖNTEMİ... 4 TANIMLAR... 4 ÖRNEK XML YAPISI... 4 PHP ÖRNEK KOD... 5 Örnek Sayfayı

Detaylı

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16 Bölüm 8. Ayrık Küme Olcay Taner Yıldız 2014 O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, 2013 1 / 16 O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi

Detaylı

Class Vector. Class Vector java.lang.object java.util.abstractcollection java.util.abstractlist java.util.vector. Kılgıladığı arayüzler:

Class Vector. Class Vector java.lang.object java.util.abstractcollection java.util.abstractlist java.util.vector. Kılgıladığı arayüzler: Class Vector java.util Class Vector java.lang.object java.util.abstractcollection java.util.abstractlist java.util.vector Kılgıladığı arayüzler: Altsınıfları Bildirimi: Cloneable, Collection, List, RandomAccess,

Detaylı

Görsel Programlama. Temel Veri Tipleri, Değişkenler, Operatörler, Akış Kontrolü, Sınıflar, Metotlar, Paketler ve JavaDoc

Görsel Programlama. Temel Veri Tipleri, Değişkenler, Operatörler, Akış Kontrolü, Sınıflar, Metotlar, Paketler ve JavaDoc Görsel Programlama Temel Veri Tipleri, Değişkenler, Operatörler, Akış Kontrolü, Sınıflar, Metotlar, Paketler ve JavaDoc Sözcüksel Kurallar Java programları aşağıdaki bileşenlerin bir kolleksiyonudur: Boşluk

Detaylı

Class LinkedHashMap. Class LinkedHashMap java.lang.object java.util.abstractmap java.util.hashmap java.util.linkedhashmap. Kılgıladığı arayüzler:

Class LinkedHashMap. Class LinkedHashMap java.lang.object java.util.abstractmap java.util.hashmap java.util.linkedhashmap. Kılgıladığı arayüzler: Class LinkedHashMap java.util Class LinkedHashMap java.lang.object java.util.abstractmap java.util.hashmap java.util.linkedhashmap Kılgıladığı arayüzler: Cloneable, Map, Serializable Bildirimi: public

Detaylı

Arasınav Örnek Soruları Bahar 2018

Arasınav Örnek Soruları Bahar 2018 Sayfa#1 Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 2116 Veri Yapıları Dersi Arasınav Örnek Soruları Bahar 2018 Süre: 75 Dakika Adı ve Soyadı YANIT ANAHTARI Öğrenci Numarası Grubu İmza

Detaylı

JAVA DA İSTİSNALAR VE DOSYA İŞLEMLERİ. Yrd. Doç.Dr. İlhan AYDIN

JAVA DA İSTİSNALAR VE DOSYA İŞLEMLERİ. Yrd. Doç.Dr. İlhan AYDIN JAVA DA İSTİSNALAR VE DOSYA İŞLEMLERİ Yrd. Doç.Dr. İlhan AYDIN Exceptions - İstisnalar İstinsa çalışma zamanında oluşan bir hatadır. Java VM tarafından beklenmeyen bir durum için veya throw komutunu çalıştırmanın

Detaylı

Dağıtık Sistemler CS5001

Dağıtık Sistemler CS5001 Dağıtık Sistemler CS5001 Th. Letschert Çeviri: Turgay Akbaş TH Mittelhessen Gießen University of Applied Sciences İstemci-Sunucu Uygulamaları: Aktive Monitörler Pasif monitörden(paylaşılan durum) aktif

Detaylı

Java Programlama. Diziler, Döngüler ve Karakter Katarları (String Sınıfı)

Java Programlama. Diziler, Döngüler ve Karakter Katarları (String Sınıfı) Java Programlama Diziler, Döngüler ve Karakter Katarları (String Sınıfı) Diziler (1/2) Belirli bir tipte, sınırlı sayıda değer içeren nesnelerdir Temel veri tiplerinde (int, double) veya sınıf tiplerinde

Detaylı

Dizi ( Array ) ve Dizgi ( String )

Dizi ( Array ) ve Dizgi ( String ) Java da Dizi ( Array ) ve Dizgi ( String ) Tanımlama BBS-515 Nesneye Yönelik Programlama Ders #6 (25 Kasım 2009) İçerikç Geçen ders: Kalıtım ( inheritance ) -- tekrar ziyaret Java da super kullanımı Java

Detaylı

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN GİRİŞ Ekrana «Merhaba Java» şeklinde bir mesajı 100 defa yazmak istediğinizi düşünelim. Aşağıdaki komut satırını 100 kez yazmak sıkıcı

Detaylı

TEMPLATES. Binnur Kurt kurt@cs.itu.edu.tr. Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1

TEMPLATES. Binnur Kurt kurt@cs.itu.edu.tr. Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1 PARAMETRİKÇOKŞEKİLLİLİK: TEMPLATES Binnur Kurt kurt@cs.itu.edu.tr Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi C++ ile Nesneye Dayalı Programlama 1 Sınıf Yapısı Kalıtım Çok Şekillilik Templates

Detaylı

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java) BİL-141 Bilgisayar Programlama I (Java) TOBB Ekonomi ve Teknoloji Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, M. Ali Akcayol tarafından Java Bilgisayar Programlamaya Giriş, A.

Detaylı

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi Görsel Programlama Metot Yeniden Tanımlama, Metot Aşırı Yükleme, Dinamik Metot Yükleme, Soyut Sınıflar, Soyut Metotlar, Arayüzler, Çoklu Kalıtım, Anonim Sınıflar ve java.lang.object Sınıflar Programcı

Detaylı

Nesneye yönelik: Javada herşey bir nesnedir. Java nesne yönelimli olduğu için kolayca geliştirilebilir.

Nesneye yönelik: Javada herşey bir nesnedir. Java nesne yönelimli olduğu için kolayca geliştirilebilir. BÖLÜM 1 Java Programlamaya Giriş Java programlama dili ilk olarak başında James Gosling`n bulundugu Sun Microsystems tarafından 1995 yılında, Sun Java Platformunun ana unsuru olarak geliştirilmeye başlandı.

Detaylı

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır. Bölüm 20 20 Arayüzler Arayüz bir sınıf değildir. Arayüz yazmak sınf yazmaya çok benzer ancak ikisi birbirinden farklı konseptlerdir. Sınıf bir nesnenin özelliklerini ve davranışlarını belirtirken; bir

Detaylı

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ KALITIM Kalıtım Biribiri ile bağlantılı bir grup öğenin ortak özelliklerini tanımlayan genel bir sınıf tanımlanabilir Bu sınıf daha sonra diğer özel sınıflara

Detaylı

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama İçerik Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Geçen hafta: Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili kavramlar Bu hafta:

Detaylı

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak:  Published by Juan Soulié Kullanılacak kaynak: http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié C++ Nedir? Arttırılmış C demektir ve C dilinin geliştirilmiş halini yansıtır. C++ öğrenmeden önce herhangi bir programlama

Detaylı

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java) 1 BİL-141 Bilgisayar Programlama I (Java) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu,

Detaylı

POLITICA BiP PRIVIND PROTECȚIA DATELOR

POLITICA BiP PRIVIND PROTECȚIA DATELOR POLITICA BiP PRIVIND PROTECȚIA DATELOR Aplicația BiP ( Aplicație ) este asigurată de Lifecell Ventures Coöperatief U.A., care constituie o entitate din grupul Turkcell İletişim Hizmetleri A.Ş. ( Turkcell

Detaylı

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Ders #2 (2 Kasım 2009) İçerikç Geçen hafta: Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili

Detaylı

JAVA DEĞİŞKEN VE OPERATÖRLER. M.İLKUÇAR - 1

JAVA DEĞİŞKEN VE OPERATÖRLER. M.İLKUÇAR - 1 JAVA DEĞİŞKEN VE OPERATÖRLER M.İLKUÇAR - imuammer@yahoo.com 1 JAVA Değişken : program içerisinde değeri dinamik olarak değişebilen yapılardır. Belirli bir tipi vardır. Bu yüzden tanımlandığı tipteki verileri

Detaylı

BM-209 Nesne Yönelimli Programlama

BM-209 Nesne Yönelimli Programlama BM-209 Nesne Yönelimli Programlama Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş,

Detaylı

Örnek 1: Programı yazın ve çalıştırın.

Örnek 1: Programı yazın ve çalıştırın. 1 0 Örnek 1: Programı yazın ve çalıştırın import javautilscanner; public class MatrisFaiz1 public static void main(string[] args) Scanner klavye=new Scanner(Systemin); double [][] faiztablo = new double

Detaylı

Foarte formal, destinatarul ocupă o funcţie care trebuie folosită în locul numelui

Foarte formal, destinatarul ocupă o funcţie care trebuie folosită în locul numelui - Introducere Turcă Engleză Sayın Başkan, Dear Mr. President, Foarte formal, destinatarul ocupă o funcţie care trebuie folosită în locul numelui Sayın yetkili, Dear Sir, Formal, destinatar de sex masculin

Detaylı

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM 2014) //Class (Sınıf) // Sınıf (class) soyut veri tipidir. // Nesne (object) sınıfın somutlaşan bir cismidir. // static : nesnesi oluşturulmaz.

Detaylı

Intercepting Filter Tasarım Şablonu KurumsalJava.com

Intercepting Filter Tasarım Şablonu KurumsalJava.com Intercepting Filter Tasarım Şablonu KurumsalJava.com Özcan Acar Bilgisayar Mühendisi http://www.ozcanacar.com Front Controller 1 tasarım şablonunda, kullanıcıdan gelen isteklerin (request) merkezi bir

Detaylı

Java: printf() Metodu İle Çıktıyı Biçemleme

Java: printf() Metodu İle Çıktıyı Biçemleme 1 Java: printf() Metodu İle Çıktıyı Biçemleme PrintStream ve PrintWriter sınıflarının yapısı: java.io Class PrintStream java.lang.object java.io.outputstream java.io.filteroutputstream java.io.printstream

Detaylı

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Yazılım Kodlama ve İ simlendirme Standartları v1.0 Yazılım Kodlama ve İ simlendirme Standartları v1.0 İçerik Yazılım Kodlama ve İsimlendirme Standartları... 2 1. Amaç... Hata! Yer işareti tanımlanmamış. 2. Kapsam... Hata! Yer işareti tanımlanmamış. 3.

Detaylı

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ AD SOYAD : TESLİM TARİHİ : OKUL NO : TESLİM SÜRESİ : 2 hafta Ödev No : 8 1. ve 2. soruların sayfa çıktıları

Detaylı

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin

Detaylı

USOCK Uygulama Bağımsız Mesajlaşma Altyapısı

USOCK Uygulama Bağımsız Mesajlaşma Altyapısı USOCK Uygulama Bağımsız Mesajlaşma Altyapısı Ege Üniversitesi Bilgisayar Mühendisliği Sunucu Yazılım Teknolojileri Proje-1 Umut BENZER 05-06-7670 http://www.ubenzer.com/ Savaş YILDIZ 05-07-8569 İçindekiler

Detaylı

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır. GİRİŞ Algoritması tasarlanmış (metin olarak yazılmış, sözde kodlarla kodlanmış veya akış diyagramı çizilmiş) bir problemi/işlemi, bilgisayar programlama dillerinden birisiyle kodlamak son derece kolaydır.

Detaylı

VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ

VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ CELAL BAYAR ÜNİVERSİTESİ, YAZILIM MÜHENDİSLİĞİ 2015-2016 1. Tanım Kuyruk, eleman eklemelerin sondan (rear) ve eleman çıkarmaların

Detaylı

VERİ YAPILARI DERS NOTLARI BÖLÜM 4 STACK (YIĞIN, YIĞIT) Yard. Doç. Dr. Deniz KILINÇ

VERİ YAPILARI DERS NOTLARI BÖLÜM 4 STACK (YIĞIN, YIĞIT) Yard. Doç. Dr. Deniz KILINÇ VERİ YAPILARI DERS NOTLARI BÖLÜM 4 STACK (YIĞIN, YIĞIT) Yard. Doç. Dr. Deniz KILINÇ CELAL BAYAR ÜNİVERSİTESİ, YAZILIM MÜHENDİSLİĞİ 2015-2016 1. Tanım Stack, doğrusal artan bir veri yapısı olup; insert

Detaylı

Java. Mustafa OF. Kocaeli Üniversitesi Kocaeli Meslek Yüksekokulu (Mart 2007)

Java. Mustafa OF. Kocaeli Üniversitesi Kocaeli Meslek Yüksekokulu (Mart 2007) Java Mustafa OF Kocaeli Üniversitesi Kocaeli Meslek Yüksekokulu (Mart 2007) Main Metod'u Java'da yapılabilecek en basit program ekrana yazı yazan bir application'dur. public class selam public static void

Detaylı

MG5000 MG5050 SP5500 SP6000 SP7000. Ghid de utilizare. Armat întotdeauna, Niciodată dezarmat

MG5000 MG5050 SP5500 SP6000 SP7000. Ghid de utilizare. Armat întotdeauna, Niciodată dezarmat MG5000 MG5050 SP5500 SP6000 SP7000 Armat întotdeauna, Niciodată dezarmat Ghid de utilizare Garanţie Pentru informaţii complete legate de garanţia acestui produs vă rugăm să consultaţi Declaraţia de Garanţie

Detaylı

Java Nitelemleri. Bölüm 1

Java Nitelemleri. Bölüm 1 Bölüm 1 Java Nitelemleri (Modifiers In Java) Java dilinde nitelemler (modifiers), bildirimlerinde java öğelerinin niteliğini belirlemek amacıyla öntakı olarak kullanılan anahtar sözcüklerdir. Şimdiye kadar

Detaylı

D İ Z İ L E R A R R A Y S

D İ Z İ L E R A R R A Y S D İ Z İ L E R A R R A Y S 1 Örneğin 120 adet öğrencinin adını klavyeden girip, daha sonra bunları ekrandan yazdıralım. Bunun için, her öğrenci için ayrı bir değişken tanımlanmalıdır. String ad1; String

Detaylı

Stack Islemleri. Postfix ve Infix notasyonlari. Stack ozellikleri

Stack Islemleri. Postfix ve Infix notasyonlari. Stack ozellikleri Veri Yapilari Stacks Stacks Queues Lists Stack nedir Stack de tanimli islemler Push Pop Empty Full Inialization Stack in gerceklestirilmesi 10/7/2004 Veri yapilari 3.1 10/7/2004 Veri yapilari 3.2 Stack

Detaylı

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié DERSİN WEB SİTESİ: http://nucleus.istanbul.edu.tr/~bilprog2/ DeğiĢkenler ve Data Türleri

Detaylı

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır. GİRİŞ Algoritması tasarlanmış (metin olarak yazılmış, sözde kodlarla kodlanmış veya akış diyagramı çizilmiş) bir problemi/işlemi, bilgisayar programlama dillerinden birisiyle kodlamak son derece kolaydır.

Detaylı

BMM3101 PROGRAMLAMA DİLLERİ

BMM3101 PROGRAMLAMA DİLLERİ 2017-2018 Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü BMM3101 PROGRAMLAMA DİLLERİ Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ Web: http://ikucukkoc.baun.edu.tr Email: ikucukkoc@balikesir.edu.tr

Detaylı

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java) 1 BİL-141 Bilgisayar Programlama I (Java) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu,

Detaylı