Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
String-array'et inderholder så de argumenter som er givet med til programmet (modsat i c starter argumenterne allerede ved position 0 i dette array).
2) På samme måde som du gjorde i BlueJ. Skriv felvariable øverst, udenfor metoderne og lokale variable i metoderne.
3) Opret 2 filer: Klasse1.java og Klasse2.java. Klasse1.java indeholder så: public class Klasse1 { //kode til klassen } og Klasse2.java indeholder tilsvarende koden til Klasse2.
4) Jeg forstår ikke spørgsmålet her? Metoder skrives bare under hinanden som du er vant til og kaldes på objektet. Husk at det er main-metoden der opretter disse objekter og sætter tingene i gang.
5) Du kan du eksempelvis gøre i main-metoden ved at tage argumenterne der er givet med til programmet. Hvis du vil læse mens programmet kører, skal dette gøres fra System.in Det er en inputStream som kan læses med en InputStreamReader. De fleste Java-programmer får dog input fra en grafisk brugerflade, men det skal du nok vente lidt med at starte på.
public class minKlasse { public static void main(String[] args) { minKlasse k = new minKlasse(); //Her laver jeg en variabel k System.out.println("Du skrev " + args[0]); //Her skriver jeg det argument ud som blev givet til programmet. Hvis der ikke gives noget argument vil programmet standse med en fejl... k.enMetode(); //Her kalder jeg en metode på objectet }
public enMetode() { System.out.println("Du har kaldt enMetode"); } }
>Kan vi lave en lille program helt fra grunden? Ja, det kan vi da. Det jeg smed i min anden kommentar, kan puttes ind i en fil kaldet minKlasse.java, compiles og køres... Så kan du prøve at følge det og se hvad der sker.
>Jeg ved ikke helt, om jeg forstået dit svar. Hvad er det nøjagtig, du ikke forstår. Så kan jeg uddybe lidt...
public class HejVerden{ public static void main(String[] arg){ System.out.println("Hej verden"); } }
det er stort set her min forståelse stopper. Jeg synes ikke rigtigt at jeg forstår, hvordan jeg opretter variabler, lave metoder, når jeg har lavet main-metoden.
Jeg tror, at den bedste måde jeg lærer det på er, at vi laver et simpel java program. Jeg ved ikke, hvad der er bedst at lave. Har du nogle forslag?
Prøv at se det program jeg postede 17:47:12 (kommentarer fjernet): public class minKlasse { public static void main(String[] args) { minKlasse k = new minKlasse(); System.out.println("Du skrev " + args[0]); k.enMetode(); }
public enMetode() { System.out.println("Du har kaldt enMetode"); } }
Her er en ekstra metode, der laves en variabel k og der kaldes en metode på den. Kan du følge hvad der sker der?
Det jeg ikke forstår er kort og godt, hvordan jeg laver et java program fra bunden. Da strukturen er anderledes end den man bruger i BlueJ, kører jeg lidt rundt i det.
Nu prøver jeg at skrive, hvordan jeg vil mene at strukturen skal se ud, så må I rette mig, hvis det er forkert.
public class Klasse1 { //Main-metoden public static void main(String[] arg){
//Her opretter jeg variabler
//konstruktører public Klasse1(){ ... }
//Metode public void metode(){ ... } } }
Jeg skal vel kalde Klasse1 k1 = new Klasse1(); og k1.metode(); eller hvad? Hvor skal jeg skrive det henne i koden?
Den fejl du begår i dit eksempel er, at du inde i den main-metode har dine andre metoder.
Prøv:
public class Klasse1 { //Main-metoden public static void main(String[] arg) { Klasse1 klasse = new Klasse1(); klasse.metode(); }
//Her opretter jeg variabler
//konstruktører public Klasse1(){ ... }
//Metode public void metode(){ ... } }
Jeg forstår ikke helt hvad du mener med at strukturen er anderledes end i BlueJ. Nu kender jeg ikke BlueJ, men javaprogrammer bygges ens op uanset hvad du bruger til det. Du kan skrive dine applikationer i Notepad og compile via kommandoprompt, hvis det er det man vil.
Du kan oprette instanser af dine klasser i alle metoder/contructors. Og derigennem kalde metoder på de instanser.
Din main-metode er indgangsvinklen til dit system. Hvad du derefter gør, og hvordan du kalder metoder/opretter instanser osv. - er fuldstændig op til dig. Og der er mange måder at gøre det på, afhængig af hvilket formål det har.
Dette kunne være i din main-metode eller hvilken som helst anden metode: ... Scanner sc = new Scanner(System.in); int x = sc.nextInt(); int y = sc.nextInt();
Klasse1 klasse = new Klasse1 (x, y); ......
Bemærk at Scanner-klassen først er med fra Java 1.5 (5.0) - så det er en forudsætning at du har minimum har den version.
Jeg har siddet og leget lidt med det. Jeg tror, at jeg ved at få styr på det med input fra tasteturet. Er det sådan man skal lave det?
public class Klasse2 { //Main-metoden public static void main(String[] arg){ Klasse2 klasse = new Klasse2(); klasse.metode(); }
//Her opretter jeg variabler private int x; private IO io;
//konstruktører public Klasse2(){
}
//Metode public void metode(){ io = new IO(); String key = io.keyboardInput(); int x = Integer.parseInt(key); System.out.println("Det indtastede tal var: " +x); } }
import java.io.*;
public class IO {
public String keyboardInput() { BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
Jeg synes faktisk din IO klasse er en ganske fornuftig løsning på at få uddelegeret ansvaret. Den kan jo udvides med alverdens metoder som kan hjælpe med Input/output. Så jeg synes det er den rigtige løsning!
Og mht. at lave det mere simpelt, så tror jeg det ikke. Det kommer meget an på hvad man skal bruge det til.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.