Avatar billede bertelsenbo Nybegynder
24. august 2006 - 13:29 Der er 11 kommentarer og
1 løsning

Ny til Eclipse, startede med BlueJ

Hej alle eksperter,
Jeg er datamatiker-studerende og vi bliver undervist udelukkende i BlueJ. Jeg har lige taget hul på 2. semester og kunne godt tænke mig at kaste mig over Eclipse istedet.

De eclipse tutorials jeg har fundet frem til er meget korte og omhandler for det meste kun hello-world eksempler. BlueJ er MEGET simpelt og jeg synes det er lækkert man kan sidde og danne objekterne selv og kalde metoderne uden problemer.

Nu til eclipse:
1. For det første hvorfor ser konstruktøren sådan ud "public static void main(String[] args)"? Især mht String[] args delen.

2. For det andet, hvorfor kan jeg ikke lave metoder med variabler uden den brokker sig over at alt skal være final og static. Så kan jeg jo ikke ændre en disse. Ikke engang kode en simpel set-metode, da den ikke engang vil godtage min parameter "int x" fx. 'public void setTal(int x){}'.

3. Kan jeg ikke oprette objekter og slå dem ihjel igen, kalde metoder fx. en set-metode og give et input som fx ovennævnte setTal-metode. Skal man virkelig kode et GUI først? Det virker da besværligt.

Hjælp en forvirret begynder.
Avatar billede arne_v Ekspert
24. august 2006 - 13:32 #1
re 1)

Fordi sådan er Java sproget !

Rent teknisk er args kommando linie argumenterne til programmet.

re 2)

Det lyder mystisk - må vi se et eksempel ?

re 3)

Der skal laves et UI - enten console eller GUI (eller web).
Avatar billede arne_v Ekspert
24. august 2006 - 13:33 #2
main er iøvrigt ikke en constructor men main entry
Avatar billede bertelsenbo Nybegynder
24. august 2006 - 13:37 #3
arne kan du ikke give et kort kode eksempel på et program der kan plusse 2 variabler man selv kan sætte (efter man trykker run)? Så ville jeg være taknemlig.
Avatar billede bertelsenbo Nybegynder
24. august 2006 - 13:38 #4
altså x + y = z
Input x, input y, console udskriver z.
Avatar billede bertelsenbo Nybegynder
24. august 2006 - 13:51 #5
mht spørgsmål 2, så virker det selvfølgelig nu :D
Sikkert bare min fejl. Og hvad er det der package? Når man laver et nyt projekt siger den at default package frarådes, men der er ligefrem ikke nogle valgmuligheder.
Avatar billede arne_v Ekspert
24. august 2006 - 14:20 #6
import java.io.*;

public class S14 {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Indtast heltal: ");
        int iv = Integer.parseInt(br.readLine());
        System.out.println(iv);
        System.out.print("Indtast decimaltal: ");
        double xv = Double.parseDouble(br.readLine());
        System.out.println(xv);
        System.out.print("Indtast ord: ");
        String sv = br.readLine();
        System.out.println(sv);
    }
}
Avatar billede arne_v Ekspert
24. august 2006 - 14:20 #7
package november;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Calc extends JApplet implements ActionListener {
    private JTextField val;
    private JButton add;
    private JButton sub;
    private JButton mul;
    private JButton div;
    private JButton eql;
    private int acc;
    public Calc() {
        val = new JTextField();
        add = new JButton("+");
        add.addActionListener(this);
        sub = new JButton("-");
        sub.addActionListener(this);
        mul = new JButton("*");
        mul.addActionListener(this);
        div = new JButton("/");
        div.addActionListener(this);
        eql = new JButton("=");
        eql.addActionListener(this);
        getContentPane().setLayout(new BorderLayout());
        getContentPane().add(val, BorderLayout.NORTH);
        JPanel btns = new JPanel();
        btns.setLayout(new GridLayout(3, 4));
        btns.add(add);
        btns.add(sub);
        btns.add(mul);
        btns.add(div);
        btns.add(eql);
        getContentPane().add(btns, BorderLayout.CENTER);
    }
    public void init() {
        acc = 0;
    }
    public void actionPerformed(ActionEvent ev) {
        if(ev.getSource() == add) {
            acc += Integer.parseInt(val.getText());
            val.setText("");
        } else if(ev.getSource() == sub) {
            acc -= Integer.parseInt(val.getText());
            val.setText("");
        } else if(ev.getSource() == mul) {
            acc *= Integer.parseInt(val.getText());
            val.setText("");
        } else if(ev.getSource() == div) {
            acc /= Integer.parseInt(val.getText());
            val.setText("");
        } else if(ev.getSource() == eql) {
            val.setText(Integer.toString(acc));
            acc = 0;
        }
    }
}
Avatar billede arne_v Ekspert
24. august 2006 - 14:21 #8
en package er en gruppe af klasse som logisk hænger sammen

begrebet findes også i UML
Avatar billede bertelsenbo Nybegynder
24. august 2006 - 14:43 #9
Mange tak arne, du er jo skide god :-O
Svar for point
Avatar billede arne_v Ekspert
24. august 2006 - 15:19 #10
eksemplerne var nogen jeg fiskede fra lageret

det kan godt vaere lidt af en udfordring at skifte fra BlueJ til Eclipse

men da det er Eclipse maaden at arbejde paa du skal bruge efter studier, saa ...

og et svar
Avatar billede bertelsenbo Nybegynder
24. august 2006 - 15:27 #11
Det e r lidt af en udfordring ja. Men det er nødvendigt.
Har jeg flere spørgsmål skal jeg nok oprette dem herinde med topic "Hjælp mig Arne" ;-)
Avatar billede arne_v Ekspert
24. august 2006 - 16:04 #12
Der er faktisk mange andre gode Java folk herinde ...
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester