Forum » Programiranje » osnove v Javi - zvezdice
osnove v Javi - zvezdice
Tim Burton ::
LP. Že kr neki časa se ubadam z temi nalogami iz zvezdic pa mi nikakor ni jasn kje morem kej še spremenit.
Tole je dosedaj koda:
nardit bi mogu tole:
*******
*******
*******
*******
potem nekaj takega:
*****
****
***
**
*
in pa še tole:
*
***
*******
********* // to bi mogla bit piramida
tista koda zgoraj pa mi izpisuje samo takole:
*
*
*
*
*
*
*
Ima kdo idejo kje sem kiksnu, ker jaz tega ne vidim? Hvala
Tole je dosedaj koda:
nardit bi mogu tole:
*******
*******
*******
*******
potem nekaj takega:
*****
****
***
**
*
in pa še tole:
*
***
*******
********* // to bi mogla bit piramida
tista koda zgoraj pa mi izpisuje samo takole:
*
*
*
*
*
*
*
Ima kdo idejo kje sem kiksnu, ker jaz tega ne vidim? Hvala
- spremenilo: Tim Burton ()
bozjak ::
Ok napisem ti za kvadrat, naprej bo pa ze slo, ne?
LP
static void izpis () {
int n = 5;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
System.out.print("*");
System.out.println();
}
}
LP
http://upor.blogec.si
http://bozjak.deviantart.com
http://bozjak.deviantart.com
Tim Burton ::
Okej, uspel mi je še nehote nardit:
*
**
***
****
Nimam pa pojma kako naj nardim tole:
*****
****
***
**
*
Vem da je treba iskat neke povezave ker sem samo notr v for zankah pogoje zamenja, samo ne najdem povezave teh vrstic s stolpci (razen te da je stolpec+vrstica vedno enaka n, se pravi 5)
vrstica stolpec
0 5
1 4
2 3
3 2
4 1
*
**
***
****
Nimam pa pojma kako naj nardim tole:
*****
****
***
**
*
Vem da je treba iskat neke povezave ker sem samo notr v for zankah pogoje zamenja, samo ne najdem povezave teh vrstic s stolpci (razen te da je stolpec+vrstica vedno enaka n, se pravi 5)
vrstica stolpec
0 5
1 4
2 3
3 2
4 1
salesky ::
vrstica stolpec
0 5
1 4
2 3
3 2
4 1
Ja to pomeni da v prvi vrstici boš mel 5 zvezdic, v drugi 4, tretji 3,....
Sepravi narediš eno zunanjo for zanko ki se bo izvedla tolikokrat kolikor je vrstic. Potem pa znotraj for zanko ki se izvede tolikokrat kolikor zvezdic hočeš. Po tem pa znotraj tiste izpišeš *.
for (število vrstic)
{
for(število zvezdic za trenutno vrstico
{izpiši zvezdico}
}
0 5
1 4
2 3
3 2
4 1
Ja to pomeni da v prvi vrstici boš mel 5 zvezdic, v drugi 4, tretji 3,....
Sepravi narediš eno zunanjo for zanko ki se bo izvedla tolikokrat kolikor je vrstic. Potem pa znotraj for zanko ki se izvede tolikokrat kolikor zvezdic hočeš. Po tem pa znotraj tiste izpišeš *.
for (število vrstic)
{
for(število zvezdic za trenutno vrstico
{izpiši zvezdico}
}
salesky ::
To bi moralo narediti.
*****
****
***
**
*
*****
****
***
**
*
int steviloZvezdic = 5;
int steviloVrstic = 5;
for (int i = 0; i < steviloVrstic; i++)
{
for (int j = 0; j < steviloZvezdic; j++)
{
System.Out.println("*");
}
//odstranimo eno zvezdico, ko gremo v novo vrstico
steviloZvezdic = steviloZvezdic - 1;
}
molotov ::
malo popravkov ;)
int steviloZvezdic = 5;
int steviloVrstic = 5;
for (int i = 0; i < steviloVrstic; i++)
{
for (int j = 0; j < steviloZvezdic; j++)
{
System.Out.print("*");
}
//odstranimo eno zvezdico, ko gremo v novo vrstico
steviloZvezdic = steviloZvezdic - 1;
System.Out.println();
}
int steviloZvezdic = 5;
int steviloVrstic = 5;
for (int i = 0; i < steviloVrstic; i++)
{
for (int j = 0; j < steviloZvezdic; j++)
{
System.Out.print("*");
}
//odstranimo eno zvezdico, ko gremo v novo vrstico
steviloZvezdic = steviloZvezdic - 1;
System.Out.println();
}
PaX_MaN ::
Malo bolj kompaktno:
int stZvezdic = 5;
for (int i = stZvezdic; i > 0; i--)
{
for (int j = 0; j < i; j++)
{
System.out.print("*");
}
System.out.println();
}
int stZvezdic = 5;
for (int i = stZvezdic; i > 0; i--)
{
for (int j = 0; j < i; j++)
{
System.out.print("*");
}
System.out.println();
}
Zgodovina sprememb…
- spremenilo: PaX_MaN ()
Tim Burton ::
Imam preprosto nalogo, ustvari tabelo z imenom studenti, jo napolni z naklučnimi števili, in vsebino izpiši. Kar sem do sedaj naredil je polno napak in ne vem kje so! Zanima me tudi pri metodah, ker v zgledih recimo piše kdaj zelo kratko določilo recimo samo "void napolni()", spet drugič pa "public static void napolni()" in zdej ne vem kdaj naj kej uporavim =(
Tole je kar sem do zdaj uspel narest:
public class Tabela {
public static void main (String[] args){
int[] studenti=new int[100];
public void napolni() {
int[] studenti = Math.random() * 100;
}
public void izpisi () {
System.out.printf ("studenti:" + [i]);
}
}
}
Tole je kar sem do zdaj uspel narest:
public class Tabela {
public static void main (String[] args){
int[] studenti=new int[100];
public void napolni() {
int[] studenti = Math.random() * 100;
}
public void izpisi () {
System.out.printf ("studenti:" + [i]);
}
}
}
salesky ::
Na hitro popravljeno. Nisem probal pognat, tako da je lahko še kaj narobe.
public class Tabela
{
int[] studenti=new int[100];
public static void main (String[] args){
napolni();
izpisi();
}
public void napolni() {
for (int i=0;i<studenti.length;i++)
{
studenti[i] = Math.random() * 100;
}
}
public void izpisi ()
{
for(int i=0;i<studenti.length;i++)
{
System.out.println("studenti:" + studenti[i]);
}
}
}
public class Tabela
{
int[] studenti=new int[100];
public static void main (String[] args){
napolni();
izpisi();
}
public void napolni() {
for (int i=0;i<studenti.length;i++)
{
studenti[i] = Math.random() * 100;
}
}
public void izpisi ()
{
for(int i=0;i<studenti.length;i++)
{
System.out.println("studenti:" + studenti[i]);
}
}
}
Tim Burton ::
A to je treba če imaš v main metodi jih najprej deklarirat te metode al kako? Sicer pa je Math.random vrača double in mi teži ker je i intiđer in ker je tabela intiđerjev =(, množenja z 100 pa ne upošteva.
Zgodovina sprememb…
- spremenilo: Tim Burton ()
PaX_MaN ::
Ne, v metodi "main" ti kličeš metode, ki jih hočeš izvršiti. Če teh metod ni, te bo prevajalnik opozoril na to.
Zgodovina sprememb…
- spremenilo: PaX_MaN ()
salesky ::
Ne v main metodi je treba klicat te metode, ker drgač se nebodo izvedle sploh. Zgleda da tebi manjkajo zelo osnovno znanje iz programiranja! Preberi si kak tutorial. Če želiš ti lahko zrihtam FRI prosojnice za javo (če že sam nisi tam).
PaX_MaN ::
Math.random() vrača vrednost med (vključno z) 0 in (izključno) 1, tipa "double", zato moraš dobljeno vrednost eksplicitno pretvorit (castat) v tip "integer".
Matek ::
Tam, ko generiraš random cifre, moraš potem castat v integer, seveda da ti trenutno teži. Pač mu reči (int) (Math.random() * 100).
Bolje ispasti glup nego iz aviona.
Tim Burton ::
Ja vidim, sem spregledal un "}" . Drugače pa ja une prosojnice ti tko mal povejo, praksa je pa neki druzga. Zakaj mi noče zdej upoštevat če množiš random z 100, kao vrne da ne more int z double.
Tim Burton ::
Ja ja, sm so me prehitel =)
Zakaj pa recimo napiše zdaj ko sem tist z int rešu, da ne more bit NE-statična metoda klicana/referenca iz statične metode (main)?
Zakaj pa recimo napiše zdaj ko sem tist z int rešu, da ne more bit NE-statična metoda klicana/referenca iz statične metode (main)?
Tutankhamun ::
Dobro jutro...
Statična metoda valda ne more klicat ne-statično, gre pa obratno. Statično lahko tudi kličeš ko objekt sploh še ni kreiran, nestatične pa lahko kličeš šele ko objekt kreiraš. Tko na hit. Preber na netu kaj pomen "static keyword" pa še par primerov boš meu zravn, da si lahk pogledaš.
Statična metoda valda ne more klicat ne-statično, gre pa obratno. Statično lahko tudi kličeš ko objekt sploh še ni kreiran, nestatične pa lahko kličeš šele ko objekt kreiraš. Tko na hit. Preber na netu kaj pomen "static keyword" pa še par primerov boš meu zravn, da si lahk pogledaš.
AMD Phenom QUAD 9950 Black Edition, 8GB
Zgodovina sprememb…
- spremenil: Tutankhamun ()
<b>klima</b> ::
Za razliko od tega da ostali niso probali tistega kar so napisali sem sam naredil izjemo.
Tvoj program naj bi zgledal takole:
public class Tabela{
static int[] studenti = new int[100];
public static void main (String[] args){
napolni();
izpisi();
}
static void napolni() {
for (int i=0;i<studenti.length;i++){
studenti[i] = (int)(Math.random() * 100);
}
}
static void izpisi (){
for(int i=0;i<studenti.length;i++){
System.out.println("studenti:" + studenti[i]);
}
}
}
Obstaja še veliko načinov kako ta program napisat...
Recimo ena taka fora je, da se v statičnih metodah napolni() in izpisi() ne sklicuješ na zgoraj navedeno tabelo (studenti []) ampak lahk manipuliraš s poljubno tabelo.
Program bi potemtakem izgledal takole:
public class Tabela{
static int[] studenti = new int[100];
public static void main (String[] args){
napolni(studenti); //navedeš katero tabelo
izpisi(studenti);
}
static void napolni(int tab[]) {
for (int i=0;i<tab.length;i++){
tab[i] = (int)(Math.random() * 100);
}
}
static void izpisi(int tab[]){
for(int i=0;i<tab.length;i++){
System.out.println("studenti:" + tab[i]);
}
}
}
LP
Tvoj program naj bi zgledal takole:
public class Tabela{
static int[] studenti = new int[100];
public static void main (String[] args){
napolni();
izpisi();
}
static void napolni() {
for (int i=0;i<studenti.length;i++){
studenti[i] = (int)(Math.random() * 100);
}
}
static void izpisi (){
for(int i=0;i<studenti.length;i++){
System.out.println("studenti:" + studenti[i]);
}
}
}
Obstaja še veliko načinov kako ta program napisat...
Recimo ena taka fora je, da se v statičnih metodah napolni() in izpisi() ne sklicuješ na zgoraj navedeno tabelo (studenti []) ampak lahk manipuliraš s poljubno tabelo.
Program bi potemtakem izgledal takole:
public class Tabela{
static int[] studenti = new int[100];
public static void main (String[] args){
napolni(studenti); //navedeš katero tabelo
izpisi(studenti);
}
static void napolni(int tab[]) {
for (int i=0;i<tab.length;i++){
tab[i] = (int)(Math.random() * 100);
}
}
static void izpisi(int tab[]){
for(int i=0;i<tab.length;i++){
System.out.println("studenti:" + tab[i]);
}
}
}
LP
Tim Burton ::
Hvala sem naredu, tudi sam mal spreminjal pa se pozabu zahvalt. Tko da hvala usem.
Trenutno delam na String in StringBufferju. Nikakor ne pokopčam poante =( . Kokr sm razbral do zdej, vsebuje razred String le naslove v pomnilniku, zato z njim ni mogoče kej praktičnega delat (primerjat, brisat, urivat, dodajat,...). In za to se uporablja Stingbuffer, ki pa hrani dejansko vrednost? Če sem prav razumel.
Mi pa nikakor ni jasen zakaj bi to sploh rabu, te stringe? Vse do zdej smo delal samo s spremenljivkami in ciframi in podobno, ne znam si zamislt da bi nekje dejansko rabu neko besedilo ustvarjat!?
Edinkrat kadar zasledim to je recimo pri stavkih npr. System.out.print("bla bla bla"); samo to mi ni logičen a je "bla bla bla" string? A je objekt njegovga razreda? In zakaj sploh programirat neki da notr vriva/dodaja v glavnem spreminja, če lahko to nardiš sam, sej samo preprost notr spremeniš besedilo!?
Ne vidim poante tu, res ne. =(
Trenutno delam na String in StringBufferju. Nikakor ne pokopčam poante =( . Kokr sm razbral do zdej, vsebuje razred String le naslove v pomnilniku, zato z njim ni mogoče kej praktičnega delat (primerjat, brisat, urivat, dodajat,...). In za to se uporablja Stingbuffer, ki pa hrani dejansko vrednost? Če sem prav razumel.
Mi pa nikakor ni jasen zakaj bi to sploh rabu, te stringe? Vse do zdej smo delal samo s spremenljivkami in ciframi in podobno, ne znam si zamislt da bi nekje dejansko rabu neko besedilo ustvarjat!?
Edinkrat kadar zasledim to je recimo pri stavkih npr. System.out.print("bla bla bla"); samo to mi ni logičen a je "bla bla bla" string? A je objekt njegovga razreda? In zakaj sploh programirat neki da notr vriva/dodaja v glavnem spreminja, če lahko to nardiš sam, sej samo preprost notr spremeniš besedilo!?
Ne vidim poante tu, res ne. =(
salesky ::
Velikokrat v programiranju hočeš nek string popravit, dopolnit, zbrisat,...tukaj ti prav pride StringBuffer, ki je narejen prav za tako delo. Kolikor se spomnem se pri Stringu vedno znova zapisujejo v pomnilnik kot nov String, pri stringbufferju pa je stvar vedno ista, le vsebina se spreminja.
Naj ti ne dela slabe volje to da neveš zakaj bi ga uporabljal, tega je še veliko. Enkrat boš pa dojel da so take stvari zelo dobrodošle.
Naj ti ne dela slabe volje to da neveš zakaj bi ga uporabljal, tega je še veliko. Enkrat boš pa dojel da so take stvari zelo dobrodošle.
Tim Burton ::
No sem našel en prime, ki izpiše vse z VELIKIMI tiskanimi.
public StringBuffer vaja1 (StringBuffer text)
{
for (int i=0; i<text.length();i++) {
char ch = text.charAt(i)
ch = Character.toUpperCase (ch);
text.setCharAt(i, ch);
}
}
Pa se takoj pojavjo vprašanja. Ali je StringBuffer v glavi metode mišljen kot podatkovni tip ki ga metoda vrača oz. funkcija? "public StringBuffer..."!?
In potem mi ni jasno zakaj uporablja v zgledu "char ch=text.charAt(i);" zakaj char ch, natančneje zakaj "ch" kaj ni naš string besedilo z naslovom text?
"ch = Character.toUpperCase (ch);" zakaj tle navajamo "Character....." a ker funkcija vrača Stringbuffer to pomeni da smo v tem razredu in če hočemo funkcijo od drugod mormo it zdej v drug razred, Character?
Pa še vprašanje izven kontexta, v primeru da imaš ti for zanko, ali pa else, do, while,... v primeru da samo en stavek vključuje tist operator ali se lahko potem {} izpusti?
NPR.
for(int i=0;i<a.length;i++)
System.out.print("danes je lep dan");
Ali bi lahko v tem primeru {} izpustu? In pa še to me zanima, recimo da želim ta index uporabit še nekje drugje v programu, npr da bi se mi izpisovalo:
System.out.print("Vse vrednost indexa so: "); // in tu bi se naprej vsi indexi i-ja izpisovali, kako bi to naredil? Ga morem dat v oglat oklepaj? [i] tkole? Al kako?
public StringBuffer vaja1 (StringBuffer text)
{
for (int i=0; i<text.length();i++) {
char ch = text.charAt(i)
ch = Character.toUpperCase (ch);
text.setCharAt(i, ch);
}
}
Pa se takoj pojavjo vprašanja. Ali je StringBuffer v glavi metode mišljen kot podatkovni tip ki ga metoda vrača oz. funkcija? "public StringBuffer..."!?
In potem mi ni jasno zakaj uporablja v zgledu "char ch=text.charAt(i);" zakaj char ch, natančneje zakaj "ch" kaj ni naš string besedilo z naslovom text?
"ch = Character.toUpperCase (ch);" zakaj tle navajamo "Character....." a ker funkcija vrača Stringbuffer to pomeni da smo v tem razredu in če hočemo funkcijo od drugod mormo it zdej v drug razred, Character?
Pa še vprašanje izven kontexta, v primeru da imaš ti for zanko, ali pa else, do, while,... v primeru da samo en stavek vključuje tist operator ali se lahko potem {} izpusti?
NPR.
for(int i=0;i<a.length;i++)
System.out.print("danes je lep dan");
Ali bi lahko v tem primeru {} izpustu? In pa še to me zanima, recimo da želim ta index uporabit še nekje drugje v programu, npr da bi se mi izpisovalo:
System.out.print("Vse vrednost indexa so: "); // in tu bi se naprej vsi indexi i-ja izpisovali, kako bi to naredil? Ga morem dat v oglat oklepaj? [i] tkole? Al kako?
Matek ::
Pa se takoj pojavjo vprašanja. Ali je StringBuffer v glavi metode mišljen kot podatkovni tip ki ga metoda vrača oz. funkcija? "public StringBuffer..."!?Da, pravilno si povedal, tako da manjka metodi še return statmenent.
In potem mi ni jasno zakaj uporablja v zgledu "char ch=text.charAt(i);" zakaj char ch, natančneje zakaj "ch" kaj ni naš string besedilo z naslovom text?S char ch se definira nova spremenljivka tipa char z imenom ch. Vanjo se med delovanjem shranjuje ena vmesna vrednost. Ce pogledas, imas tam kot vrednost podano char ch = text.charAt(i). To pomeni, da se v spremenljivko ch shrani samo en znak, ki je v nasem stringu text na i-tem mestu (ker i raste od 0 do dolzine stringa se tako s for zanko sprehodimo cez cel string znak po znak).
"ch = Character.toUpperCase (ch);" zakaj tle navajamo "Character....." a ker funkcija vrača Stringbuffer to pomeni da smo v tem razredu in če hočemo funkcijo od drugod mormo it zdej v drug razred, Character?Pravilno, metode iz dolocenega razreda klicemo direktno, samo ce smo v njem. Podobno kot z Math.random() klices metodo random iz Javinega razreda Math, obstaja tudi razred Character, njegova metoda toUpperCase sprejme kot parameter spremenljivko tipa char in nam vrne isto crko, le da z veliko zacetnico.
Pa še vprašanje izven kontexta, v primeru da imaš ti for zanko, ali pa else, do, while,... v primeru da samo en stavek vključuje tist operator ali se lahko potem {} izpusti?Da, ce naredis samo eno stvar, se lahko {} izpusti, vseeno pa je na tebi, ce bos to dejansko pocel. Zaradi preglednosti kode lahko morda vseeno se vstavljas oklepaje.
In pa še to me zanima, recimo da želim ta index uporabit še nekje drugje v programu, npr da bi se mi izpisovalo:Ce hoces i dejansko izpisati, moras reci: System.out.print("Vse vrednost indexa so: " + i);Glede tega, ko omenjas, da bi rad izpisoval indeks tudi "nekje drugje v programu", pa bodi pazljiv. Ce ti pozenes for zanko z ukazom for(int i = 0;..., si ta i definiral strogo znotraj zanke in ne bo obstajal nikjer drugje.
System.out.print("Vse vrednost indexa so: ");
in tu bi se naprej vsi indexi i-ja izpisovali, kako bi to naredil? Ga morem dat v oglat oklepaj? [i] tkole? Al kako?
Oglati oklepaji pa se uporabljajo pri nanasanju na polja (ang. array), tako da si morda kaj zamesal. Tabela predstavlja (zelo poenostavljeno) nekaksen predalnik vecjega stevila spremenljivk enakega tipa, recimo ce hoces imeti 10 intov, ne rabis reci int stevilka1 = 643, int stevilka2 = 342, int stevilka3 = ..., ampak naredis eno polje int[] stevilke = new int[10], kar ti pripravi prostorcke za 10 stevilk. Nanje se potem nanasas s stevilke[nekaj], recimo stevilke[4] = 4324;
Glavna uporabnost tega je, da se lahko s for zankami sprehajas cez tovrstne strukture. Ce recimo znotraj for zanke reces stevilke[i] = 10 + i in i raste od 0 do 9, se bo pri desetih ponovitvah zanke dostopalo do vsakega od desetih prostorckov in se vanj zapisalo vrednost 10 + i.
Bolje ispasti glup nego iz aviona.
Zgodovina sprememb…
- spremenil: Matek ()
Glodko ::
Sam imam podobne probleme, samo recimo sem zasledil nalogo z grafiko kjer si moral izrisvat krožne kolobarje različnih barv (izpitne naloge FRI), kjer je radij kroga bil 30, 40, 50, 60, 70, se prav bi glih z indexom lahko izrisval (radij kroga), samo ne vem kako naj bi dopovedal v tem ali podobnih primerih da funkcija upošteva index za radij.
Zgodovina sprememb…
- spremenilo: Glodko ()
PaX_MaN ::
Za risat ovale imaš razredu Graphics metodo drawOval, ki sprejme štiri argumente tipa "integer" zato lahko ji lahko podaš indeks i (ker je i tip "integer"). Je malo neumno narejena metoda (središče, radij anyone?), ampak se da:
for(int i = 3,i < neka številka,i++)
g.drawOval(središčeX-i*10,središčeY - i*10, i*20 , i*20);
for(int i = 3,i < neka številka,i++)
g.drawOval(središčeX-i*10,središčeY - i*10, i*20 , i*20);
Zgodovina sprememb…
- spremenilo: PaX_MaN ()
charlotte ::
Da se še jst prislinim, niso zvezdice ampak je glih tako osnova v Javi.
Gre se pa za nalogo, kao šifriranje nizov. Zdej pa mene zanima, dam en stavek
System.out.print("Kr neki mi upiš da zašifriram: ");
Tu dobim nek niz ki ga user vtipka (katerega primitivnega tipa/ali samo tipa je to besedilo?), preberem ga z metodo ki jo je prfoks sprogramiral BranjePodatkov.PreberiString(); recimo. In zdej bi jst dalje rad ta String maltretiral obračal vrival in podobno. Kako naj zdaj nardim da mi ta String (predvidevam da je String to vnešeno besedilo), omogoča to vrivanje in podobno, kako naj iz tega nardim StringBuffer, al kaj je že? In še tole me zanima, znotraj katerega razreda potem jst sem ko to spremenim nekak v StringBuffer, ker rabim metode razreda String in StringBuffer (klicanje metod)?
V glavnem kot vidte nikakor ne morem ločit med temi Char, String, Stringbuffer, čeprov definicije poznam že na pamet. Samo kljub vsemu tega ne znam delat v praxi. Upam da se bo kdo najdu ki bi znal pomagat. HVALA.
Gre se pa za nalogo, kao šifriranje nizov. Zdej pa mene zanima, dam en stavek
System.out.print("Kr neki mi upiš da zašifriram: ");
Tu dobim nek niz ki ga user vtipka (katerega primitivnega tipa/ali samo tipa je to besedilo?), preberem ga z metodo ki jo je prfoks sprogramiral BranjePodatkov.PreberiString(); recimo. In zdej bi jst dalje rad ta String maltretiral obračal vrival in podobno. Kako naj zdaj nardim da mi ta String (predvidevam da je String to vnešeno besedilo), omogoča to vrivanje in podobno, kako naj iz tega nardim StringBuffer, al kaj je že? In še tole me zanima, znotraj katerega razreda potem jst sem ko to spremenim nekak v StringBuffer, ker rabim metode razreda String in StringBuffer (klicanje metod)?
V glavnem kot vidte nikakor ne morem ločit med temi Char, String, Stringbuffer, čeprov definicije poznam že na pamet. Samo kljub vsemu tega ne znam delat v praxi. Upam da se bo kdo najdu ki bi znal pomagat. HVALA.
PaX_MaN ::
Poglej, kateri razred ti vrača BranjePodatkov.PreberiString(), potem poglej dokumentacijo tistega razreda (String, StringBuffer) nato pa izberi tiste konstruktorje in metode, ki jih potrebuješ.
Zgodovina sprememb…
- spremenilo: PaX_MaN ()
charlotte ::
Kokr sm pogledal preberiString vrača string. Se prav recimo oseba vnese notr "kistica" ti ti prebereš in imaš zdej String, samo z njim nimaš kej spreminjat, vrivat, obračat! Kako to pretvoriš v StringBuffer, da lhk zadevo spreminjaš?
zanima me še potem, ko nekdo neki notr vnese npr. "kistica" in ti to prebereš, ali je prebran String isto kot da bi sam napisal (brez uporabnika)
"String str = "kistica";" ?
zanima me še potem, ko nekdo neki notr vnese npr. "kistica" in ti to prebereš, ali je prebran String isto kot da bi sam napisal (brez uporabnika)
"String str = "kistica";" ?
PaX_MaN ::
Kokr sm pogledal preberiString vrača string. Se prav recimo oseba vnese notr "kistica" ti ti prebereš in imaš zdej String, samo z njim nimaš kej spreminjat, vrivat, obračat! Kako to pretvoriš v StringBuffer, da lhk zadevo spreminjaš?
Da dobiš StringBuffer iz Stringa, lahko uporabiš StringBufferjev konstruktor, ki kot argument vzame String:
StringBuffer str2 = new StringBuffer(str);
zanima me še potem, ko nekdo neki notr vnese npr. "kistica" in ti to prebereš, ali je prebran String isto kot da bi sam napisal (brez uporabnika)
"String str = "kistica";" ?
Lahko preveriš:
if(str.equalsIgnoreCase(StringPrebranZBranjePodatkov.PreberiString()))
System.out.println("Niza sta enaka!")
charlotte ::
The String class represents character strings. All string literals in Java programs, such as "abc", are implemented as instances of this class.
Strings are constant; their values cannot be changed after they are created.
Se pravi je recimo "kistica" objekt razreda String in jo lahko obdelujemo z metodami ki so v razredu String, če želiš delat kej iz razreda StringBuffer z njo moreš dat prej "StringBuffer. xxxx ()"? Po definicijo sodeč? Ali moreš to "kistico" najprej spremenit iz objekta razreda String v objekt razreda StringBuffer in potem delat z njo? Ker če imaš StringBuffer objekt, potem lahko bp delaš na njem tudi metode String (a String spada pod Character? Ali kaj je razred Character?). Hvala!
P.S.: če berem dokumentacijo API si nimam kej pomagat ker ne razumem osnov in sem z vsem skup zmeden in pol si svoje razlage v glavi delam, ki pa ponavad niso pravilne.
Strings are constant; their values cannot be changed after they are created.
Se pravi je recimo "kistica" objekt razreda String in jo lahko obdelujemo z metodami ki so v razredu String, če želiš delat kej iz razreda StringBuffer z njo moreš dat prej "StringBuffer. xxxx ()"? Po definicijo sodeč? Ali moreš to "kistico" najprej spremenit iz objekta razreda String v objekt razreda StringBuffer in potem delat z njo? Ker če imaš StringBuffer objekt, potem lahko bp delaš na njem tudi metode String (a String spada pod Character? Ali kaj je razred Character?). Hvala!
P.S.: če berem dokumentacijo API si nimam kej pomagat ker ne razumem osnov in sem z vsem skup zmeden in pol si svoje razlage v glavi delam, ki pa ponavad niso pravilne.
Zgodovina sprememb…
- spremenilo: charlotte ()
PaX_MaN ::
Se pravi je recimo "kistica" objekt razreda String in jo lahko obdelujemo z metodami ki so v razredu String,
Tako je.
če želiš delat kej iz razreda StringBuffer z njo moreš dat prej "StringBuffer. xxxx ()"? Po definicijo sodeč?
StringBuffer.xxx() so statične metode RAZREDA, ki se jih lahko izvrši kadarkoli in so vezane le na argument, ki jim ga lahko podaš, in ne na INSTANCAH RAZREDA, kot je npr. zgornja spremenljivka str2. Nad instanco razreda, torej spremenljivko, vršiš metode takole: [spremenljivka].[klicana metoda]
Ali moreš to "kistico" najprej spremenit iz objekta razreda String v objekt razreda StringBuffer in potem delat z njo?
Da.
Ker če imaš StringBuffer objekt, potem lahko bp delaš na njem tudi metode String (a String spada pod Character? Ali kaj je razred Character?). Hvala!
Ne, ker StringBuffer ne deduje metod iz Stringa; oba dedujeta le metode iz razreda Object. Character je poseben razred, ki nekako "obleče" primitivni tip "char" v objekt, da lahko na njem vršiš poljubne metode.
Tim Burton ::
Lep pozdrav, še nekaj dokaj amaterskih vpršanj imam. Zanima me pri dedovanju ali morajo biti atributi nadrazreda in podrazreda vsi označeni z dostopnim določilom PROTECTED, ali bi lahko bili vsi private? Ali je konstanto treba redefinirat v podrazredu, ali je avtomatsko ko deduješ na voljo tudi v podrazredu?
Zanima me še za static, prebral sem da se to uporablja v metodah razreda, se pravi main in vse metode ki so v main morajo biti statične? Recimo da bi imeli delavca, zanj bi želeli izračunat koliko zasluži na leto, metodo bi sprogramiral nekje posebej v razredu, v metodi main pa bi jo poklical, ali v tem primeru metoda za izračun letnega dohodka mora vsebovati določilo static? Ker je bilo rečeno da static ne smeš uporabljat za metode objekta, in ta metoda za delavca se mi zdi da je metoda objekta, ampak potem je ne morem jaz uporabit v main (če bi želel recimo v main izpisat ime, priimek in dohodek v letu), upam da razumete kaj čem povedat?!
Zanima me še za static, prebral sem da se to uporablja v metodah razreda, se pravi main in vse metode ki so v main morajo biti statične? Recimo da bi imeli delavca, zanj bi želeli izračunat koliko zasluži na leto, metodo bi sprogramiral nekje posebej v razredu, v metodi main pa bi jo poklical, ali v tem primeru metoda za izračun letnega dohodka mora vsebovati določilo static? Ker je bilo rečeno da static ne smeš uporabljat za metode objekta, in ta metoda za delavca se mi zdi da je metoda objekta, ampak potem je ne morem jaz uporabit v main (če bi želel recimo v main izpisat ime, priimek in dohodek v letu), upam da razumete kaj čem povedat?!
Tutankhamun ::
Ni treba da so usi atributi označeni. Če niso so privzeto private.
private pomeni:
da so atributi vidni samo objektu v katerem so definirani
protected pomeni:
da so atributi vidni objektu v katerem so definirani in objektu ki ga deduje
public pomeni:
da so atributi vidni objektu v katerem so definirani objektom ki dedujejo in so kot "interface objekta" se dostopa do objekta.
V primeru da vse metode in spremenljivke označiš s private, pol maš črno škatlco, ki se ti neki vala v programu.
konstanta je tko kot use ostale spremenljivke, samo da jih ne moreš spreminjat.
Zih so kšni tutoriali kako se spiše en ici pici programček, pa poglej kako je s temi statičnimi metodami... Še bolj, če ne veš kaj sploh pomeni static, je bolš da to kje prej prebereš pa probaš razumet bo velik laži.
Have a nice day
private pomeni:
da so atributi vidni samo objektu v katerem so definirani
protected pomeni:
da so atributi vidni objektu v katerem so definirani in objektu ki ga deduje
public pomeni:
da so atributi vidni objektu v katerem so definirani objektom ki dedujejo in so kot "interface objekta" se dostopa do objekta.
V primeru da vse metode in spremenljivke označiš s private, pol maš črno škatlco, ki se ti neki vala v programu.
konstanta je tko kot use ostale spremenljivke, samo da jih ne moreš spreminjat.
Zih so kšni tutoriali kako se spiše en ici pici programček, pa poglej kako je s temi statičnimi metodami... Še bolj, če ne veš kaj sploh pomeni static, je bolš da to kje prej prebereš pa probaš razumet bo velik laži.
Have a nice day
AMD Phenom QUAD 9950 Black Edition, 8GB
Zgodovina sprememb…
- spremenil: Tutankhamun ()
Tim Burton ::
Ja ker na izpitu sem napisal vse atribute ki so bili tam našteti in sem dal dostopna določila protected, tako nadrazredu kot podrazredu, in mi je napisal (profesor) da tam niso protected ampak private, ampak kokr vem, če deduješ potem morš dat atribute protected, praviloma.
Zanima me še kam se sklicuje this.xxxx v podrazredu, nekaj časa sem mislil da je to sklic na atribut nadrazreda, samo očitn to ni tko!
Zanima me še kam se sklicuje this.xxxx v podrazredu, nekaj časa sem mislil da je to sklic na atribut nadrazreda, samo očitn to ni tko!
Zgodovina sprememb…
- spremenilo: Tim Burton ()
Tutankhamun ::
Ne nič ni praviloma, to je odvisno kaj hočeš dosečt. Če hočeš skrit metode in spremenljivke baznega razreda pred vsemi daš private, zato da nekdo teh spremenljivk ne popravlja po svoje. V primeru da želiš skriti spremenljivke metode pred zunanjim svetom ne pa tudi pred objektom ki deduje, daš protected. Public so pa tak al tak stvari ki so odprte vsem...
Hm za this ma nevem kako bi napisu, da nebi razvleku...
this.xxx pomeni spremenljivko xxx v trenutnem objektu/metodi. Ampak this uporabljaš ponavadi v primeru če obstajata 2 enako imenski spremenljivki. Če pa hočeš dostopat do spremenljivke v drugem objektu pa napišeš base.xxx al bazni_objekt.xxx, al kako ma java to narjeno. Ne poznam jave, poznam c++ pa c#.
Še sam ne zastopm kaj sm napisu....
Jah tko je, ponavad je this.xxx pomeni xxx v razredu v katerem to kličeš. Če pa xxx ne obstaja v podrazredu pol pa se sklicuješ na xxx v nadrazredu. Nevem pa če tko tut deluje v javi. Vrjetn tm nardiš v stilu base.xxx, al pa narazred.xxx...
Zakaj pa ne probaš pa boš kuj vedu kako deluje...
Hm za this ma nevem kako bi napisu, da nebi razvleku...
this.xxx pomeni spremenljivko xxx v trenutnem objektu/metodi. Ampak this uporabljaš ponavadi v primeru če obstajata 2 enako imenski spremenljivki. Če pa hočeš dostopat do spremenljivke v drugem objektu pa napišeš base.xxx al bazni_objekt.xxx, al kako ma java to narjeno. Ne poznam jave, poznam c++ pa c#.
Še sam ne zastopm kaj sm napisu....
Jah tko je, ponavad je this.xxx pomeni xxx v razredu v katerem to kličeš. Če pa xxx ne obstaja v podrazredu pol pa se sklicuješ na xxx v nadrazredu. Nevem pa če tko tut deluje v javi. Vrjetn tm nardiš v stilu base.xxx, al pa narazred.xxx...
Zakaj pa ne probaš pa boš kuj vedu kako deluje...
AMD Phenom QUAD 9950 Black Edition, 8GB
Tutankhamun ::
Ne nič ni praviloma, to je odvisno kaj hočeš dosečt. Če hočeš skrit metode in spremenljivke baznega razreda pred vsemi daš private, zato da nekdo teh spremenljivk ne popravlja po svoje. V primeru da želiš skriti spremenljivke metode pred zunanjim svetom ne pa tudi pred objektom ki deduje, daš protected. Public so pa tak al tak stvari ki so odprte vsem...
Hm za this ma nevem kako bi napisu, da nebi razvleku...
this.xxx pomeni spremenljivko xxx v trenutnem objektu. Ampak this uporabljaš ponavadi v primeru če obstajata 2 enako imenski spremenljivki. Če pa hočeš dostopat do spremenljivke v drugem objektu pa napišeš base.xxx al bazni_objekt.xxx, al kako ma java to narjeno.
Še sam ne zastopm kaj sm napisu....
Jah tko je, ponavad je this.xxx pomeni xxx v razredu v katerem to kličeš. Če pa xxx ne obstaja v podrazredu pol pa se sklicuješ na xxx v nadrazredu. Nevem pa če tko tut deluje v javi. Vrjetn tm nardiš v stilu base.xxx, al pa narazred.xxx...
Zakaj pa ne probaš pa boš kuj vedu kako deluje...
Hm za this ma nevem kako bi napisu, da nebi razvleku...
this.xxx pomeni spremenljivko xxx v trenutnem objektu. Ampak this uporabljaš ponavadi v primeru če obstajata 2 enako imenski spremenljivki. Če pa hočeš dostopat do spremenljivke v drugem objektu pa napišeš base.xxx al bazni_objekt.xxx, al kako ma java to narjeno.
Še sam ne zastopm kaj sm napisu....
Jah tko je, ponavad je this.xxx pomeni xxx v razredu v katerem to kličeš. Če pa xxx ne obstaja v podrazredu pol pa se sklicuješ na xxx v nadrazredu. Nevem pa če tko tut deluje v javi. Vrjetn tm nardiš v stilu base.xxx, al pa narazred.xxx...
Zakaj pa ne probaš pa boš kuj vedu kako deluje...
AMD Phenom QUAD 9950 Black Edition, 8GB
Zgodovina sprememb…
- spremenil: Tutankhamun ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | java mali problem (začetnik)Oddelek: Programiranje | 2404 (2147) | ozbolt |
» | PAPAJSCINA Java problemOddelek: Programiranje | 2417 (2073) | alexa-lol |
» | [Java] Frekvenca besedOddelek: Programiranje | 1321 (1175) | zila90 |
» | Java-Izdelek-NujnoOddelek: Programiranje | 1507 (1279) | iggy |
» | [NALOGA][Java] Branje vsebine datoteke vzvratnoOddelek: Programiranje | 1604 (1546) | SkIDiver |