Hoe een methodefunctie aanroepen vanuit een andere klasse?

Ik schrijf een Java-project met drie verschillende klassen. Dit is wat ik tot nu toe heb. Ik zit gewoon vast over hoe je een methodefunctie van een andere klasse naar een andere klasse roept. Ik heb al 2 lessen geschreven. Ik heb de klasse “Date” en “TemperatureRange” gedaan; nu probeer ik die 2 klassen in de “WeatherRecord” -klasse te roepen. Ik weet niet zeker of ik dit goed uitleg.

public class WeatherRecord //implements Record
{
    private String TemperatureRangetoday;
    private String TemperatureRangenormal;
    private String TemperatureRangerecord;
    public static void main (String[] args){
    }
}

Dit is een andere les

public class Date
{
    public static String date(String date, String month, String year){
        String rdate = date + " " +month + " " +year;
        return rdate;   
    }
}

En hier is nog een les

public class TemperatureRange
{
    public static String TempRange (String high, String low){
        String rTempRange = high +"high" + " "+low+"low";
        return rTempRange;
    }
}

Antwoord 1, autoriteit 100%

Je hebt een verwijzing nodig naar de klasse die de methode bevat die je wilt aanroepen. Laten we zeggen dat we twee klassen hebben, A en B. B heeft een methode die je wilt aanroepen vanuit A. Klasse A ziet er als volgt uit:

public class A
{
    B b; // A reference to B
    b = new B(); // Creating object of class B
    b.doSomething();  // Calling a method contained in class B from class A
}

B, die de methode doSomething() bevat, ziet er als volgt uit:

public class B
{
    public void doSomething()
    {
        System.out.println("Look, I'm doing something in class B!");
    }
}

Antwoord 2, autoriteit 14%

In de klas WeatherRecord:

Importeer eerst de klasse als ze zich in een ander pakket bevinden, anders is deze instructie niet vereist

Import <path>.ClassName

Verwijs vervolgens naar uw object of noem het als volgt:

Date d;
TempratureRange tr;
d = new Date();
tr = new TempratureRange;
//this can be done in Single Line also like :
// Date d = new Date();

Maar in uw code hoeft u geen object te maken om de functie Date en TempratureRange aan te roepen. Aangezien beide klassen Static Function bevatten, kunt u de thos-functie niet aanroepen door een object te maken.

Date.date(date,month,year);   // this is enough to call those static function 

Heb een duidelijk concept over object- en statische functies. Klik op mij


Antwoord 3, autoriteit 5%

Voor het aanroepen van de methode van één klasse binnen de tweede klasse, moet je eerst het object van die klasse aanmaken welke methode je wilt aanroepen dan met de objectreferentie kun je de methode aanroepen.

class A {
   public void fun(){
     //do something
   }
}
class B {
   public static void main(String args[]){
     A obj = new A();
     obj.fun();
   }
}

Maar in uw geval hebt u de statische methode in datum en temperatuurklasse. U kunt uw statische methode bellen door de klassaam direct zoals onderstaande code te gebruiken of door het object van die klasse te maken zoals hierboven-code, maar statische methode, meestal gebruiken we voor het maken van de hulpprogramma’s, dus de beste manier om de methode te bellen door de methode te bellen . Zoals in uw geval –

public static void main (String[] args){
  String dateVal = Date.date("01","11,"12"); // calling the date function by passing some parameter.
  String tempRangeVal = TemperatureRange.TempRange("80","20"); 
}

Antwoord 4

U moet de andere klassen in de hoofdklasse instantiëren;

Date d = new Date(params);
TemperatureRange t = new TemperatureRange(params);

U kunt vervolgens hun methoden bellen met:

object.methodname(params);
d.method();

U hebt momenteel constructeurs in uw andere klassen. U moet ergens niets teruggeven.

public Date(params){
    set variables for date object
}

Vervolgens heb je een methode nodig om te verwijzen.

public returnType methodName(params){
  return something;
}

Antwoord 5

U moet het verschil tussen klassen en objecten begrijpen. Van de java tutorial :

Een object is een softwarebundel van gerelateerde staat en gedrag

Een klasse is een blauwdruk of prototype waaruit objecten worden gemaakt

Je hebt de prototypes gedefinieerd, maar er niets mee gedaan. Om een object te gebruiken, moet u het maken. In Java gebruiken we het trefwoord new.

new Date();

U moet het object toewijzen aan een variabele van hetzelfde type als de klasse waaruit het object is gemaakt.

Date d = new Date();

Zodra je een verwijzing naar het object hebt, kun je ermee communiceren

d.date("01", "12", "14");

De uitzondering hierop zijn statische methoden die bij de klasse horen en er doorheen wordt verwezen

public class MyDate{
  public static date(){ ... }
}
...
MyDate.date();

Voor het geval u het niet weet, Java heeft al een klasse voor het weergeven van datums, u wilt er waarschijnlijk geen eigen klasse maken.


Antwoord 6

import <path>;
 My main java program:
import method;
import java.util.Scanner;
public class Main {
    public static void main(String[] args){
        Scanner n = new Scanner(System.in);
        int a,b,c;
        double area,s;
        System.out.print("Enter the 1st side->");
        a = n.nextInt();
        System.out.print("Enter the 2nd side->");
        b = n.nextInt();
        System.out.print("Enter the 3rd side->");
        c = n.nextInt();
        s=(a+b+c)/2.0;
        area = Math.sqrt(s*(s-a)*(s-b)*(s-c));
        System.out.println("Area is = "+area);
        //factorial function is contained in the class method
        System.out.print(method.factorial(a));
    }
}

Other episodes