如何在非静态方法中从另一个类调用非静态方法? (Java)的

时间:2012-03-21 16:04:05

标签: java

    import java.util.*;
    import java.io.*;
    public String recToString (boolean format) {

    Date date = new Date();

        File inputFile = new File ("records.txt");
        Scanner sc = new Scanner(inputFile);
        if (format == true){
            format = Date1.usFormat();
            format = Date1.usFormat();
        } else {
            format = Date1.euFormat();
        }      
        }

我计划调用usFormat和euFormat。

    import java.util.*;
    import java.io.*;

    class Date1 {    
        String month = "";
        String day   = "";
        String year  = "";

        public Date1 (String date)  { 
            StringTokenizer st = new StringTokenizer(date, "/"); 
            month = st.nextToken();
            day   = st.nextToken();
            year  = st.nextToken();
        } //end constructor   

        public  String usFormat () {   
            String date = month + "/" + day + "/" + year;
            return date;
        } //end usFormat   


        public String euFormat () { 
            String date = day + "/" + month + "/" + year;
            return date;
        } //end euFormat 
        } //end class  

请尽量忽略任何其他错误。但如果它搞砸了这个并且我必须改变它以获得它,请告诉:)

感谢。

3 个答案:

答案 0 :(得分:0)

您需要构造一个Date1对象并在其上调用方法。你需要做一些像

这样的事情
...
String dateString = ...
Date1 date1 = new Date1(dateString);
if (format){
  format = date1.usFormat();
} else {
  format = date1.euFormat();
}    

答案 1 :(得分:0)

在这种情况下,我通常会执行以下操作

 format = new Date1(date.toString()).usFormat();
 format = new Date1(date.toString()).usFormat();

不知道你为什么不让它们变得静止。

答案 2 :(得分:0)

你在打电话:

Date1.usFormat();
像usFormat这样的静态方法。但是,正如你已经说过的那样,事实并非如此。您需要通过执行以下操作来创建Date1的实例:

Date1 myDate1 = new Date1("01/01/2001");

之后,您可以使用myDate1对象调用格式化方法,如:

format = myDate1.usFormat();