我正在编写一个包含三个不同类的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;
}
}
答案 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));
}
}