10 svar
464 visningar
gulfi52 896 – Fd. Medlem
Postad: 23 apr 2017 09:34 Redigerad: 23 apr 2017 10:08

Anropa samt Ändra värde av boolean

Om man tex har nedan, hur kan man

 

public boolean frontUp(int r, int c) {
return true;

}

1) anropa detta från en annan metod i samma klass?

2) anropa detta från en metod i annan klass i samma paket?

3) ändra värdet av detta boolean från annan metod i samma klass?

4) ändra värdet av detta boolean från metod i annan klass i samma paket?

Henrik Eriksson 1405 – Fd. Medlem
Postad: 23 apr 2017 14:39

Vad är ditt förslag?

gulfi52 896 – Fd. Medlem
Postad: 23 apr 2017 16:03

 Jag har verkligen ingen aning... Har suttit och testat men får bara eclipse att markera rött så hittar inte ens rätt den vägen (mao utan att fattat innan hur man får göra)...

Henrik Eriksson 1405 – Fd. Medlem
Postad: 23 apr 2017 16:48

Vet du hur ett anrop ser ut? Det kan se ut så här frontUp(3,7); Pröva om det funkar i situation 1. I situation två måste du ange vilket objekt som har frontUp i sej, till exempel objektet.frontUp(3,7);

gulfi52 896 – Fd. Medlem
Postad: 23 apr 2017 17:10
Henrik Eriksson skrev :

Vet du hur ett anrop ser ut? Det kan se ut så här frontUp(3,7); Pröva om det funkar i situation 1. I situation två måste du ange vilket objekt som har frontUp i sej, till exempel objektet.frontUp(3,7);

1. Så om jag befinner mig o samma klass, alltså inte i mainmetoden utan i en klass man sedan ska använda i mainmetoden, så räcker det att skriva frontUp(parametrar); när man använder detta boolean?

2. Men om man, igen, inte befinner sig i mainmetoden och har skapatngt objekt av slaget som frontUp finns i - hur skriver man så om man vill använda detta frontUp?

3. Hur tilldelar man frontUp ett nytt värde? Alltså om det i implementeringen av frontUp står tex return true hur ändrar jag detta till false/tilldelar jag booleanet true?

PeterÅ 842
Postad: 24 apr 2017 17:10 Redigerad: 24 apr 2017 17:14

Java är ingen lek. Du behöver veta mycket. Ett tips är att ladda ner NetBeans. Med det programmet kan du testa och programmera i Java: https://netbeans.org/features/index.html

Se även nedanstående:

package pluggakuten;

public class Pluggakuten
{

    public void main(String[] args)
    {
        boolean b;
       
        b = upFront.frontUp(1, 2); // Anropa i en annan klass
        b = frontUp(1, 2); // Lokal funktion
        b = false; // Ändra värdet
    }
    boolean frontUp(int r, int c)
    {
        return true;
    }
}

class upFront
{
  public static boolean frontUp(int r, int c)
  {
    return true;
  }
}

gulfi52 896 – Fd. Medlem
Postad: 24 apr 2017 17:34 Redigerad: 24 apr 2017 17:35

Edit

Porchy 21
Postad: 24 apr 2017 22:13

Vet du vad ett objekt/instance är i Java?

gulfi52 896 – Fd. Medlem
Postad: 24 apr 2017 22:46

Ett objekt - ja.

Henrik Eriksson 1405 – Fd. Medlem
Postad: 24 apr 2017 23:26

Jag visade ju hur man anropar en metod i ett objekt.

Porchy 21
Postad: 24 apr 2017 23:30 Redigerad: 24 apr 2017 23:32

Okej bra!

I java så bör man sköta allt via objekt (som du vet så är det instancer av klasser).

Exemplena du sitter med ovan är hur du anropar en metod som befinner sig i en instance av en klass.

1) Vill du anropa frontUp från samma klass så är det "bara" att anropa den. Språket antar att du automagiskt menar den metoden som är i samma klass som dig.

2) Om du ska anropa en metod från en annan klass blir det lite knepigare. Du måste då veta vilken instance (objekt) av den klassen som du vill anropa.

Ex: säg att du har en klass "Bil" och skapar ett antal instancer av den Bil A, Bil B, Bil C.. Om du sedan skriver frontUp(0,0); så vet du inte vilken av bilerna du ska anropa frontUp på! Då måste du ha en referens till rätt bil och sedan via den anropa metoden.

Så om du vill anropa just Bil A's frontUp så kan du skriva: A.frontUp(0,0); Då anropar du specifikt A's metod och de andra bilarna påverkas inte.

3) Nu har du problemet att din "boolean" är inte en "variabel" så du kan inte ändra något dynamiskt. Vad jag menar är att du returnerar alltid true.. Skulle du returnera en variabel så kan du byta värdet på denna till olika saker. Om det står "Hårdkodat" true så går det inte att byta..

4) Samma som 3an.

Du kan svara på om du förstod 1an och 2an först så kan vi ta 3an,4an efter.

Svara
Close