You are on page 1of 77

Objektno orijentisano programiranje

Java, 2. as

Eclipse

Postoji mnotvo Java razvojnih alata:


Borland Jbuilder NetBeans Eclipse ... Ovi alati podravaju integrated development

environment (IDE) za brzi razvoj Java programa. Editovanje, kompajliranje, buildovanje, debugg-ovanje i online help su integrisani u jedan GUI.

Eclipse

Eclipse se moe pokrenuti na proizvoljnoj platformi sa Java VM. Moe se download-ovati sa www.eclipse.org Pre instaliranja Eclipse, mora se instalirati JDK http://java.sun.com

Eclipse, perspektiva

Nakon pokretanja, otvara se Workspace Launcher prozor workspace je zapravo direktorijum u koji se smetaju fajlovi naeg projekta Perspektiva sadri editore i poglede (views) U jednom prozoru moe postojati jedna ili vie perspektiva Otvaranje perspektive : Window Open Perspective Java

Eclipse, editori

Na povrini predvienoj za editor moe biti otvoren vei broj editora, a oni se mogu razmestiti tako da se vidi sadraj svakog od njih Sa jednog na drugi otvoreni editor moe se prei npr. pomou preice Ctrl+F6 ili strelicama iz toolbar-a. Window Reset Perspective ureuje layout kao u prvobitnom stanju

Eclipse, pogledi

Odreeni pogled se moe prikazati izborom iz Window Show View menija Perspektivom je odreeno koji pogledi se mogu videti i oni su ponueni u Show View podmeniju

Eclipse

Editovanje fajlova izvan Eclipse


Eclipse smeta sve svoje resurse na lokalni fajlsistem. Resursi se mogu kopirati u workspace direktorijum i kada Eclipse nije pokrenut, a fajlovi se mogu menjati nekim od eksternih alata. Koristiti Refresh za auriranje Eclipse-a promenama nainjenim izvan njega. Refresh se moe izabrati iz File ili odgovarajueg popup menija

Eclipse, kreiranje projekta


File New Project Java project , Next Ukucati ime projekta u polje Project name Create project in workspace Use project folder as root for sources and class files Finish

Kreiranje novog paketa


U Package Explorer pogledu izabrati projekat U toolbar-u kliknuti na dugme New Java Package ili izabrati New Package iz kontekst menija U polje Name ukucati ime novog paketa Finish

Kreiranje nove klase


U Package Explorer pogledu izabrati novi paket Kliknuti na dugme New Java Class u toolbar-u Proveriti da se u polju Source Folder nalazi ime projekta i u polju Package ime naeg paketa U polje Name uneti ime klase public static void main(String[] args) Finish Automatski se otvara editor za dodavanje koda nove klase

Eclipse, kompajliranje i izvravanje programa


Na kod se dinamiki kompajlira dok kucamo Crvene vijugave linije u editoru ukazuju na eventualne greke Za pokretanje programa :
sauvamo promene odemo u Package Explorer pogled desnim klikom na klasu projekta koja implementira main() metod (....java) pozivamo kontekst meni izaberemo Run As Java Application

izlaz je prikazan u Console pane

Java, izvravanje programa

Pokretanje klase iz Package Explorer-a kao Java aplikacije koristi default podeavanja za pokretanje odabrane klase i ne dozvoljava navoenje argumenata komandne linije. Za navoenje ovih argumenata, koristiti padajui meni Run iz toolbar-a i izabrati Run... Otvara se dijalog u kome se izabere tab Arguments i ukucaju argumenti u polje Program arguments (argumente razdvojiti belinama) Run

Eclipse, debugger

Omoguuje postavljanje breakpoint-a i izvravanje programa liniju po liniju. Mogu se pratiti i menjati vrednosti promenljivih kao i posmatrati koji metodi se pozivaju za vreme izvravanja programa Breakpoint se moe postaviti na neku liniju duplim klikom na vertikalni ruler du leve ivice editora, ispred te linije Pojavljuje se puna plava taka na tom mestu

Eclipse, debugger

Debugger se zaustavlja kada doe do breakpoint-a Pokreemo debugger desnim klikom na klasu, a zatim izaberemo Debug As Java Application Pojavljuje se prozor koji nas pita da li da otvori Debug perspektivu. Kliknuti na Yes. Naredna linija koju debugger treba da izvri naznaena je zelenom bojom Kako nastaviti? resume, suspend, terminate, step into, step over, step return, run to line iz Run menija ili toolbar-a

Eclipse, debugger

Vrednosti promenljivih prikazane su u Variables pane Da bismo promenili vrednost promenljive, desnim klikom na nju, pa izborom Change Value otvara se dijalog u kome moemo da unesemo novu vrednost promenljive Kada zavrimo rad sa debugger-om, moemo otvoriti Java perspektivu sa Window Open Perspective Java

Java, klasa Character

Klasa Character je automatski dostupna naim programima Metodi:


isDigit() isLetter() isLetterOrDigit() isWhiteSpace() isLowerCase() isUpperCase()

Sve kao argument uzimaju jedan char

Klasa Character

Da bismo mogli da piemo: char symbol='a'; if(isUpperCase(symbol)) isLowerCase(symbol); na poetku treba navesti: import static java.lang.Character.*;

Bez toga, morali bismo da piemo i ime klase ispred imena metoda, npr.

Nizovi

Nizovska promenljiva i niz na koji se ona odnosi su odvojeni entiteti Memorija koja se alocira za nizovsku promenljivu uva referencu na niz, ne sam niz. Sam niz je poseban entitet koji e biti negde drugde u memoriji Nismo u obavezi da kreiramo niz kada deklariemo nizovsku promenljivu. Moemo najpre kreirati nizovsku promenljivu i kasnije u nju smestiti referencu na odreeni niz

Deklaracija nizovske promenljive


int[] niz; int niz[]; Niz tek treba da se definie. Na ovom mestu nije alocirana memorija za sam niz Ova promenljiva je prosto lokacija u memoriji koja moe da uva referencu/pokaziva na niz Za kreiranje samog niza mora se zadati njegov tip i koliko e elemenata sadrati int [] niz; kae da je tip nizovske promenljive int []

Definisanje niza

Nakon to smo deklarisali nizovsku promenljivu, moemo definisati niz na koji e ona referisati:
niz = new int[10]; // Definise niz od 10 integer-a Ova naredba kreira niz koji e sadrati 10

vrednosti tipa int, i smeta referencu na niz u promenljivu niz Mogue je i jednom naredbom deklarisati nizovsku promenljivu i definisati niz tipa int koji e sadrati 10 celih brojeva:
int[] niz = new int[10];

Definisanje niza

Kljuna re new ukazuje na to da se alocira nova memorija za niz, a int[10] odreuje da kapacitet te memorije treba da bude dovoljan za 10 promenljivih tipa int Kada se niz kreira ovako, elementi niza se automatski inicijalizuju na podrazumevane vrednosti, a to su:
0 za numerike vrednosti false za boolean '\u0000' za char null za objekte

Duina niza

to je broj elemenata koje niz sadri length atribut ( a ne metod! ) objekta koji predstavlja niz Npr. niz.length ( za na niz imae vrednost 10 ) Ovaj atribut se moe koristiti za kontrolisanje for petlje koja obrauje elemente niza Ukoliko promenimo broj elemenata niza ovo polje se automatski aurira

Pristup elementima niza

Indeks mora biti tipa int ( ukoliko je long mora se izvriti eksplicitno kastovanje u int ) niz[0] - prvi element niza niz Java proverava da li su vrednosti indeksa koje koristimo validne. Ako nisu, izbacuje izuzetak tipa IndexOutOfBoundsException

Nizovska promenljiva

Nizovska promenljiva je odvojena od niza koji referie. Na raznim mestima u programu moemo koristiti nizovsku promenljivu za uvanje referenci na razliite nizove. Npr.
int[] niz = new int[10];

... niz = new int[50]; To je sada novi niz, potpuno odvojen od prethodnog. Prethodni niz od 10 elemenata se odbacuje.

Inicijalizacija nizova
int[] niz={2,3,5,7,11,13,17}; int[] niz=new int[100]; // automatska inicij. na 0 niz[0]=2; niz[1]=3; double[] data = new double[50]; for(int i=0; i<data.length; i++) data[i]=1.0;

Korienje Utility metoda za inicijalizaciju nizova

Metod fill() definisan u klasi Arrays iz paketa java.util moe se koristiti za inicijalizaciju niza import java.util.Arrays; Arrays.fill(data, 1.0); // popunjava sve elemente niza data jedinicom Prvi argument ime niza koji treba popuniti Drugi argument vrednost Ovaj metod radi za sve vrednosti primitivnih tipova

fill() metod

Poto je fill() statiki metod klase Arrays, moe i ovako:


import static java.util.Arrays.fill;

pa onda moemo zvati metod bez navoenja klase fill(data,1.0);

Inicijalizacija nizovske promenljive

Nizovska promenljiva se moe inicijalizovati i referencom na postojei niz:


long[] even = {2L,4L,6L,8L,10L};

long[] value = even; Onda nizovske promenljive even i value referiu na isti niz

Obrada nizova
double average = 0.0; double[] uzorci = new double[50]; for(int i=0; i<uzorci.length; i++){ uzorci[i]=100.0*Math.random(); average += uzorci[i]; } average /= uzorci.length;

Obrada nizova collection-based for-petlja


double average = 0.0; for( double value: uzorci ){
average += value; }

average /= uzorci.length; Petlja iterira kroz vrednosti svih elemenata tipa double niza uzorci. Promenljivoj value se pridruuje jedna po jedna vrednost elemenata niza

Collection-based for petlja


Ovakva for-petlja slui za obradu celog niza Za obradu dela niza i dalje se mora koristiti standardna for-petlja Collection-based for petlja ne obezbeuje pristup elementima u svrhu postavljanja njihovih vrednosti Za promene vrednosti elemenata niza koristi se standardna for-petlja

Nizovi nizova

float[][] temperatura = new float[10][365]; Ovo je dvodimenzioni niz:

postoji 10 jednodimenzionih nizova i svaki od njih ima 365 elemenata

Primer obrade: for(int i=0; i<temperatura.length; i++) for(int j=0; j<temperatura[i].length; j++)
temperatura[i][j]=(float)(45.0*Math.random()-10.0);

Nizovi nizova razliitih duina


Nizovi u nizu ne moraju biti iste duine: float[][] uzorci; // deklarise niz nizova uzorci = new float[6][]; // definise 6 elemenata, svaki je niz // promenljiva uzorci sada referencira niz sa 6 // elemenata, od kojih svaki moze primiti // referencu na jednodimenzioni niz uzorci[2] = new float[6]; uzorci[5] = new float[101]; // uzorci.length ima vrednost 6 // uzorci[5].length ima vrednost 101

String-ovi

U Javi, stringovi su objekti klase String, koja se nalazi u paketu java.lang String literal je niz karaktera pod dvostrukim navodnicima Ovo je String literal - konstantan objekat klase String String-ovi se interno uvaju kao Unicode karakteri

Kreiranje String objekata

String promenljiva je promenljiva koja uva referencu na objekat klase String String promenljiva se deklarie na isti nain kao i promenljive primitivnih tipova. Takoe, moe se inicijalizovati pri deklarisanju, to je generalno dobra ideja. String mojString = Moj string; mojString = Drugi string; Sam String objekat je razliit od promenljive koju koristimo da na njega referiemo

String

String objekti su nepromenljivi. To znai da se ne moe menjati string koga taj objekat predstavlja. String string; // deklaracija, bez inicijalizacije Ukoliko program pokua da koristi promenljivu koja nije inicijalizovana, dobiemo greku pri kompajliranju String string = null; // String promenljiva koja // ne referise na string

Nizovi String-ova
String[] imena=new String[5]; String[] boje={crvena,zuta,plava};

Operacije nad String-ovima

Konkatenacija ( operator + ) kao rezultat se generie potpuno nov String objekat, razliit od String objekata koji su operandi Operator + se takoe koristi i za sabiranje, ali ako je bar jedan od operanada String objekat ili String literal, kompajler e interpretirati operaciju kao konkatenaciju stringova i konvertovae objekat koji nije String objekat u String

Stringovi operacije

Ako npr. String promenljiva koja se koristi kao 1 od operanada za + sadri null , ona se automatski konvertuje u string null Moe se koristiti i operator += // kombinovanje stringa i integer-a mojString = pedeset pet je + 5 + 5 ; System.out.println(mojString); // pedeset pet je 55

String-ovi
// kombinovanje integer-a i stringa mojString = 5 + 5 + je deset; System.out.println(mojString); // 10 je deset ZATO? Asocijativnost + je sleva nadesno i to je razlog to je 5+5 55 u prvom primeru, a 10 u drugom

toString()

Konverzija primitivnih tipova u tip String zapravo se vri korienjem statikog metoda toString() standardne klase koja odgovara tom primitivnom tipu Svaki od primitivnih tipova ima definisanu ekvivalentnu, tzv. wrapper, klasu: byte Byte, short Short, int Integer, long Long, float Float, double Double, boolean Boolean, char Character

toString()

Kadgod se vrednost nekog od primitivnih tipova pojavi kao operand za +, a drugi operand je String objekat, kompajler prosleuje vrednost primitivnog tipa metodu toString() definisanom u odgovarajuoj wrapper klasi. Metod toString() vraa String ekvivalentan vrednosti. Sve se to deava automatski pri konkatenaciji stringova operatorom +.

valueOf()

Metod klase String Kreira String objekat od vrednosti proizvoljnog primitivnog tipa String doubleString = String.valueOf(3.14159); valueOf() je statiki metod klase String Zato se poziva sa String.valueOf() Kao argument moe primiti literal ili promenljivu proizvoljnog primitivnog tipa

Poreenje stringova

String promenljiva i string koji ona referie se razlikuju Izraz string1 == string2 ne poredi same stringove, ve reference na stringove Za takvo poreenje, moe se koristiti metod equals(), koji je definisan za objekte tipa String Npr. string1.equals(string2) equals() vri case-sensitive poreenje Postoji i equalsIgnoreCase() metod

Stringovi, operacije

Metodima startsWith() / endsWith() koji kao argument primaju String, moemo izvriti casesensitive proveru da li string poinje / zavrava se stringom koji je dat kao argument metoda. String string1 = Ovo je string; string1.startsWith(Ovo) // true string1.endsWith(string) // true

compareTo(String)

Analogon strcmp() iz C-a Poredi objekat String za koji je pozvan, sa String argumentom koji mu prosleujemo i vraa int koji je negativan, ako je String objekat manji od argumenta, 0 ako su jednaki, a pozitivan inae. Zapravo, vri se poreenje Unicode reprezentacija odgovarajuih karaktera stringova

String-ovi, operacije

charAt() - prima int argument, indeks traenog karaktera. Ukoliko pokuamo da koristimo indeks manji od 0 ili vei od indeksa poslednjeg karaktera stringa, bie izbaen izuzetak tipa StringIndexOutOfBoundsException Za odreivanje duine stringa poziva se metod length() nad String objektom. Primetimo da se kod nizova pristupa atributu length.

Konvertovanje

toLowerCase(), toUpperCase() konvertuju String u mala, odnosno velika slova i vraaju referencu na konvertovani String text = text.toLowerCase();

Pretraga Stringova

indexOf(), lastIndexOf() metodi Postoji nekoliko verzija ovih metoda koje omoguuju traenje pojedinanog karaktera ili podstringa koji se zadaje kao (prvi) argument indexOf() trai od poetka stringa, unapred, dok lastIndexOf() trai unatrag, poev od kraja stringa Vraaju odgovarajui indeks, ako je traenje uspelo, a -1 inae

Pretraga Stringa

Postoji varijacija prethodna 2 metoda koja ima i drugi argument. Njime se odreuje pozicija od koje treba poeti pretraivanje Ako se kao drugi argument prosledi negativna vrednost, metod indexOf() pretrauje ceo string, od poetka Vano je proveriti da li je vraena vrednost indeksa -1 pre njegovog korienja za indeksiranje Stringa!

Pretraga Stringa rezime


indexOf(int ch) indexOf(int ch, int index) indexOf(String str) indexOf(String str, int index) I analogno za metod lastIndexOf() Metod startsWith() takoe ima verziju sa drugim argumentom, koji predstavlja poziciju od koje poinje potraga za datom sekvencom karaktera

Izdvajanje podstringova

Metod substring() izdvaja podstring iz stringa Postoje 2 verzije ovog metoda

Prva izdvaja podstring koji se sastoji od svih karaktera poev od datog indeksa, pa do kraja stringa
String place = Palm Springs;

lastWord = place.subString(5); // Springs

Druga omoguuje da izdvojimo podstring zadavanjem indeksa prvog karaktera podstringa i prvog karaktera iza poslednjeg karaktera podstringa
String segment = place.substring(7,11); // ring

Ako indeks nije validan izbacuje se izuzetak

Metodi replace() i trim()

Metod replace() koristi se za zamenu odreenog karaktera drugim kroz string. Prima dva argumenta:

Prvi je karakter koji se menja Drugi je karakter kojim se menja

Metod trim() slui za uklanjanje belina sa poetka i kraja stringa

Kreiranje nizova karaktera od String objekata


Metod toCharArray() Kreira niz tipa char i vraa referencu na njega String text = To be or not to be ; char[] textArray = text.toCharArray(); Mogue je izdvojiti i podstring kao niz karaktera metodom getChars(). Potrebno je kreirati dovoljno veliki niz u koji e se upisati rezultat i on se prosleuje kao jedan od argumenata metoda. Metod zahteva 4 argumenta

Kreiranje String objekata od nizova karaktera


Statiki metod copyValueOf() klase String Kreira String objekat od niza tipa char[] Char[] textArray = { 'T', 'o', ' ', 'b', 'e' }; String text = String.copyValueOf(textArray); String text = new String(textArray); // poziv konstruktora U Javi stringovi se ne zavravaju sa '\0'!

CopyValueOf() - druga verzija

Druga verzija metoda copyValueOf() moe kreirati podstring od podskupa elemenata niza. Ona zahteva 2 dodatna argumenta za odreivanje indeksa prvog karaktera niza koji se izdvaja i broj karaktera koji se izdvaja String text = String.copyValueOf(textArray,9,3); Postoji i konstruktor klase String koji radi isto: String text = String(textArray,9,3);

Promenljivi stringovi StringBuffer i StringBuilder


String objekti se ne mogu menjati Java ima jo dve klase koje enkapsuliraju stringove: StringBuffer i StringBuilder Objekti obe ove klase mogu se direktno menjati Obe klase omoguuju iste operacije, ali StringBuffer objekti su bezbedni za korienje od strane veeg broja niti, a StringBuilder nisu Niti su nezavisni izvrni procesi unutar programa koji se mogu konkurentno izvravati

String,StringBuffer,StringBuilder?

Ako smo sigurni da e naim promenljivim stringovima pristupati samo jedna nit, treba da koristimo StringBuilder objekte jer e operacije nad njima biti bre nego nad StringBuffer objektima StringBuffer i StringBuilder objekte treba koristiti kada se stringovi esto transformiu dopisuju, briu ili menjaju podstringovi stringa. Ako uglavnom imamo statike stringove koje tu i tamo treba da nadoveemo, String objekti su najbolji izbor

Kreiranje StringBuffer objekata


StringBuffer aString = new StringBuffer(string); NE MOE ... = string; String phrase = Inicijalizacioni string; StringBuffer buffer = new StringBuffer(phrase); StringBuffer myString = null; myString = new StringBuffer(neki string); StringBuffer aString = myString; // sada myString i aString referiu na 1 isti StringBuffer // objekat

Kapacitet StringBuffer objekta

StringBuffer objekat sadri blok memorije, tzv. bafer koji moe, a ne mora, sadrati string, a ako ga sadri, string ne mora zauzimati ceo bafer. Tako, duina stringa u StringBuffer objektu moe biti razliita od duine odgovarajueg bafera Duina bafera je tzv. kapacitet StringBuffer objekta Metod length() odreuje duinu stringa koji je sadran u objektu

Kapacitet StringBuffer objekta

Kada kreiramo StringBuffer objekat od postojeeg stringa, kapacitet e biti duina stringa + 16 I kapacitet i duina su izraeni u Unicode karakterima ( => 2 bajta) Kapacitet StringBuffer objekta nije fiksiran. On se automatski menja da bi se prilagodio stringu proizvoljne duine. Takoe, moe se zadati inicijalno kapacitet pri kreiranju objekta.

Kapacitet StringBuffer objekta


StringBuffer newString = new StringBuffer(50); /* kreira objekat newString sa kapacitetom za smetanje 50 karaktera. Bez vrednosti 50, default kapacitet bio bi 16 karaktera. Bafer je inicijalno prazan nijednog stringa nema u njemu */ Metod capacity() vraa kapacitet objekta u datom trenutku (kao broj Unicode karaktera koje objekat trenutno moe da smesti )

Kapacitet StringBuffer objekta

Metod ensureCapacity() omoguuje da promenimo default kapacitet objekta. Minimalni kapacitet koji nam je potreban zadajemo kao argument metoda aString.ensureCapacity(40); /* ako je trenutni kapacitet objekta aString manji od 40, alocirae se novi, vei bafer, ali ne nuno kapaciteta 40. Kapacitet e biti vei od: argumenta metoda u ovom sluaju 40 i (2 puta trenutni kapacitet + 2)

Promena duine StringBuffer objekta


Metod setLength() Kada uveamo duinu objekta, dopisuju se '\u0000' karakteri na postojei string Uobiajenije je smanjenje duine, u kom sluaju se vri odsecanje stringa. Karakteri koji se odseku sa kraja stringa ovom operacijom bivaju izgubljeni. Ako se ponovo povea duina na prethodnu, novi karakteri bie '\u0000'

Promena duine StringBuffer objekta

Duina je svojstvo stringa kojeg objekat sadri, dok je kapacitet svojstvo bafera Metod setLength() ne utie na kapacitet objekta osim ako se duina postavi na veu od kapaciteta. U tom sluaju, kapacitet e se poveati tako da se prilagodi novoj duini stringa Ako se zada negativna duina, bie izbaen izuzetak tipa StringIndexOutOfBoundsException

Dopisivanje na StringBuffer objekat

Metod append() omoguuje dodavanje stringa na kraj postojeeg stringa smetenog u StringBuffer objektu StringBuffer aString = new StringBuffer(prvi); aString.append( drugi); // prvi drugi Duina stringa se uveava za duinu stringa koji smo dodali StringBuffer bString = aString.append( drugi); // sada u aString i bString pokazuju na isti objekat

Dopisivanje na StringBuffer objekat

Operator '.' koji koristimo za izvravanje odreenog metoda na objektu, asocijativan je sleva nadesno U jednoj naredbi mogue je pisati vie operacija append StringBuffer string = new StringBuffer(); string.append(Prvi).append( drugi);

Dopisivanje podstringa

Druga verzija metoda append() dodaje deo String objekta StringBuffer objektu. Jo 2 argumenta:

indeks prvog karaktera String objekta koji e se nadovezati ukupan broj karaktera koji e biti nadovezani

StringBuffer buf = new StringBuffer(Hard); String aString = Waxworks; buf.append(aString,3,4); // Hard work

Nadovezivanje primitivnih tipova


Verzije append() metoda koje omoguuju nadovezivanje String ekvivalenata vrednosti svakog od primitivnih tipova na StringBuffer objekat Argument moe biti tipa: boolean, char, byte, short, int, long, float, double Postoji i verzija koja kao argument prima niz tipa char. Sadraj niza se nadovezuje na StringBuffer objekat kao string

Nadovezivanje

Jo jedna verzija omoguuje nadovezivanje podskupa elemenata niza tipa char 2 dodatna argumenta:

Indeks prvog elementa koji se nadovezuje Ukupan broj elemenata koji se nadovezuju

Traenje pozicije podstringa


Metod lastIndexOf() 2 verzije:

1 argument string koji traimo, a metod vraa indeks poslednje pojave stringa ili -1 ako string nije pronaen ( indeksiranje kree od 0 ) Jo jedan argument indeks u baferu odakle treba da pone pretraivanje

Zamena podstringa u baferu


Metod replace() Menja uzastopni niz karaktera datim stringom String kojim zamenjujemo moe sadrati vie karaktera od stringa koji se menja 3 argumenta:

Prva 2 tipa int: poetni indeks u baferu i 1 iza kraja podstringa koji treba zameniti Trei: tipa String i to je string koji treba ubaciti

Primer
StringBuffer phrase = new StringBuffer(one two three four); String substring = two; String replacement = twenty; int position = phrase.lastIndexOf(substring); phrase.replace(position, position+substring.length(), replacement); // za dobijanje vrednosti indeksa karaktera koji je neposredno iza // poslednjeg karaktera podstringa, samo dodamo duinu podstringa // na indeks njegovog poetka

Umetanje String-ova

Metod insert() Prvi argument odreuje indeks u objektu gde treba umetnuti prvi karakter Mnoge verzije insert() metoda prihvataju drugi argument nekog od tipova koje prihvata i metod append() U svakom sluaju, string ekvivalentan drugom argumentu umee se poev od indeksa datog prvim argumentom

charAt() i getChars()

rade na isti nain kao istoimeni metodi klase String setCharAt() - ovim metodom moe se promeniti pojedinani karakter StringBuffer objekta
2 argumenta: indeks karaktera koji se menja i kojim karakterom se menja deleteCharAt() - brisanje pojedinanog karaktera

objekta sa pozicije date argumentom delete() - brisanje nekoliko karaktera ( indeks prvog karaktera koji se brie, indeks karaktera neposredno iza poslednjeg koji se brie )

reverse() i toString()

reverse() - obre sekvencu karaktera u StringBuffer objektu toString() - kreira novi String objekat i inicijalizuje ga stringom sadranim u StringBuffer objektu Kompajler intenzivno koristi toString() i append() metode da bi implementirao konkatenaciju String objekata

Primer
String saying = Many + hands + make ; kompajler to implementira ovako: String saying = new StringBuffer().append(Many).append( hands).append( make).toString();

You might also like