如何从另一个类调用方法函数?

时间:2014-10-09 02:03:56

标签: java bluej

我正在编写一个包含三个不同类的java项目。这是我到目前为止所拥有的。我只是坚持你如何从另一个类调用方法函数到另一个类。我已经写了两门课。我完成了“Date”类和“TemperatureRange”类;现在我试图将这两个类称为“WeatherRecord”类。我不确定我是否正确解释这一点。

public class WeatherRecord //implements Record
{

    private String TemperatureRangetoday;
    private String TemperatureRangenormal;
    private String TemperatureRangerecord;


    public static void main (String[] args){

    }
}

这是另一个类

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

这是另一个班级

public class TemperatureRange
{
    public static String TempRange (String high, String low){

        String rTempRange = high +"high" + " "+low+"low";
        return rTempRange;

    }
}

6 个答案:

答案 0 :(得分:13)

您需要对包含要调用的方法的类的引用。假设我们有两个类,A和B.B有一个你想从A调用的方法.A类看起来像这样:

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,其中包含doSomething()方法,如下所示:

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

答案 1 :(得分:1)

在课堂WeatherRecord中:

如果它们在不同的包中,则首先导入该类,否则此声明不需要

Import <path>.ClassName



然后,只需参考或称呼您的对象:

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



但是在您的代码中,您不需要创建一个对象来调用Date和TempratureRange的函数。由于两个类都包含静态函数,因此无法通过创建对象来调用thoes函数。

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


对Object和Static函数有明确的概念。 Click me

答案 2 :(得分:0)

您需要在主类中实例化其他类;

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

然后您可以使用以下方法调用他们的方法:

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

您目前在其他课程中拥有构造函数。你不应该退回这些内容。

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

接下来你需要一个方法来引用。

public returnType methodName(params){
  return something;
}

答案 3 :(得分:0)

enter link description here您需要了解类和对象之间的区别。来自Java教程:

  

对象是相关状态和行为的软件包

     

类是创建对象的蓝图或原型

您已定义原型但未对其进行任何操作。要使用对象,您需要创建它。在Java中,我们使用new关键字。

new Date();

您需要将对象分配给与创建对象的类相同类型的变量。

Date d = new Date();

一旦你有了对象的引用,就可以与它进行交互

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

这个例外是属于该类并通过它引用的静态方法

公共类MyDate {   public static date(){...} }

... MyDate.date();

如果您不了解,Java已经有一个用于表示日期的课程,您可能不想创建自己的课程。

答案 4 :(得分:0)

为了在第二个类中调用一个类的方法,你必须首先创建该类的对象,而不是使用可以调用方法的对象引用来调用哪个方法。

Class A {

Public void fun(){

//do something

}

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

但是在你的情况下,你有Date和TemperatureRange类中的静态方法。您可以像下面的代码一样直接使用类名来调用静态方法,或者通过像上面的代码那样创建该类的对象,但是静态方法,我们主要用于创建实用程序类,因此最好的方法是使用类名调用该方法。就像你的情况一样 -

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"); 
}

答案 5 :(得分:0)

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));
    }
}