Java 从不同类调用方法(与其他问题不同)

Java 从不同类调用方法(与其他问题不同),java,Java,所以我对java比较陌生,我正试图在我的main中使用一个不同类的方法 我最初用于提取的方法不包含任何数据,而是从文本文档中提取数据 我已经包含了调用从文件加载数据的另一个类方法的代码。它坏了,我的错在哪里 import java.io.BufferedReader; import java.io.FileReader; import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; pu

所以我对java比较陌生,我正试图在我的main中使用一个不同类的方法

我最初用于提取的方法不包含任何数据,而是从文本文档中提取数据

我已经包含了调用从文件加载数据的另一个类方法的代码。它坏了,我的错在哪里

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class FinalRobert {

public static void main(String[] args) {
//output of animalList class here 
}
这是我想要学习的课程:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;


public class animalList {

public void animalDetails () {

int i = 0;

String animalInfo = "C:/Users/Robert/Documents/animals.txt";
String animalHabitat = "‪C:/Users/Robert/Documents/habitats.txt";

    try {
        File animalFile = new File(animalInfo);
        FileReader animalReader = new FileReader(animalFile);
        BufferedReader animalList = new BufferedReader (animalReader);
        StringBuilder animalDetailList = new StringBuilder();

        String line;

        while ((line = animalList.readLine()) != null) {
            for (i = 0; i <4 ; i++) {
                System.out.println(line);
                animalList.readLine();
            }
        }
        animalReader.close();
        System.out.println(animalDetailList.toString());
        }
    catch (IOException e) {
    }
}
}
导入java.io.BufferedReader;
导入java.io.File;
导入java.io.FileReader;
导入java.io.FileNotFoundException;
导入java.io.IOException;
公营动物学家{
公共无效动物细节(){
int i=0;
字符串animalInfo=“C:/Users/Robert/Documents/animals.txt”;
字符串animalHabitat=”‪C:/Users/Robert/Documents/hobitations.txt”;
试一试{
文件animalFile=新文件(animalInfo);
FileReader animalReader=新的FileReader(animalFile);
BufferedReader animalList=新的BufferedReader(animalReader);
StringBuilder animalDetailList=新StringBuilder();
弦线;
而((line=animalList.readLine())!=null){
对于(i=0;i这是一个动物学家的例子:

public class AnimalList {//use java naming convention

    public void animalDetails () {

        //mcve should be runnable. The problem you ask help with is not
        //reading from file, so remove file reading functionality to make it mcve
        StringBuilder animalDetailList = new StringBuilder();
        animalDetailList.append("Family: Cats").append("\n")
                        .append("Type  : Panther").append("\n")
                        .append("Weight: 250kg").append("\n")
                        .append("Color : Pink");
        System.out.println(animalDetailList.toString());
    }
}
从另一个类调用其方法:

public class FinalRobert {

    public static void main(String[] args) {

        //to invoke animalDetails() method use
        AnimalList aList = new AnimalList();
        aList.animalDetails();

        //if you do not need the aList refrence you could use 
        //new AnimalList().animalDetails();
    }
}
输出


家庭:猫
类型:黑豹
体重:250公斤
颜色: 粉红的


我希望这对你有帮助

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class FinalRobert {

    public static void main(String[] args) {
        animalList list = new animalList();
        list.animalDetails();
    }
}



import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;


public class animalList {

    public String animalDetails () {

        int i = 0;
        String output="";

        String animalInfo = "C:/Users/Robert/Documents/animals.txt";
        String animalHabitat = "‪C:/Users/Robert/Documents/habitats.txt";

        try {
            File animalFile = new File(animalInfo);
            FileReader animalReader = new FileReader(animalFile);
            BufferedReader animalList = new BufferedReader (animalReader);

            String line;
            while ((line = animalList.readLine()) != null & i<4) {
                   System.out.println(line);
                    output = output + "\n"+ line;
                    i++;
            }
            animalReader.close();
            System.out.println(output);
        }
        catch (IOException e) {
        }
        return output;
    }
}
导入java.io.BufferedReader;
导入java.io.FileReader;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.util.Scanner;
公共类最终查询{
公共静态void main(字符串[]args){
animalList list=新的animalList();
list.animalDetails();
}
}
导入java.io.BufferedReader;
导入java.io.File;
导入java.io.FileReader;
导入java.io.FileNotFoundException;
导入java.io.IOException;
公营动物学家{
公共字符串动物详细信息(){
int i=0;
字符串输出=”;
字符串animalInfo=“C:/Users/Robert/Documents/animals.txt”;
字符串animalHabitat=”‪C:/Users/Robert/Documents/hobitations.txt”;
试一试{
文件animalFile=新文件(animalInfo);
FileReader animalReader=新的FileReader(animalFile);
BufferedReader animalList=新的BufferedReader(animalReader);
弦线;

while((line=animalList.readLine())!=null&I您的问题是?我不知道如何将animalDetails.toString()从animal类输出为第一个if部分下的主类的输出。首先,您应该设置animalDetails()的返回类型然后返回您在那里打印的内容。第二,您可能应该将animalDetails()设置为静态,这样就可以调用它,而无需将animalList
公共静态字符串animalDetails(){//此处的所有逻辑;返回animalDetailList.toString();}
公共静态void main(字符串[]args){//System.out.println(animalList.animalDetails());
顺便说一句,类名应该跟在骆驼命名后面:每个字母都应该以大写字母开头。@Tiina你能在上面的代码中说明这一点吗?我试图更改类型并放入return语句,但遇到了“找不到符号”错误。