【问题标题】:use variable from another class [closed]使用另一个类的变量[关闭]
【发布时间】:2014-01-07 11:33:40
【问题描述】:

我有两节课。我想在二等(类问题)的一等中使用englishfrench。请帮助我修复该代码,因为它显示了一个错误。

代码块:

package josephtraduire;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class FileParser implements IParser{

    @Override
    public void parseFile () throws IOException{
        String french="";
        String english="";

        try( BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\User\\Desktop\\text.txt"))){
            String line;        
            while ((line = br.readLine())!=null){
                    String[] pair = line.split(";");
                    french=(pair[0]);
                    english=(pair[1]);
            }
        }        
    }            

}

package josephtraduire;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Date;
import java.util.Scanner;

public class Question extends FileParser {

String mot ;
String reponse ;
String name;
int nb;
int nbquest ;
String traduction;

Question (String name , int nb){
    this.name=name;
    this.nb=nb;
}

Question() throws IOException{

    InputStreamReader isr = new InputStreamReader(System.in); 
    BufferedReader in = new BufferedReader(isr); 
    { 
        System.out.println("Entrer votre nom "); 
        String nom = in.readLine(); 
        name=nom;
    }    

    do {
        System.out.println("Rentrez le nombre de question :    ( max 20 )");
        Scanner nombrequest = new Scanner(System.in);
        nbquest = nombrequest.nextInt();
        nb=nbquest;
    }  while ( nbquest>20 ||nbquest<=0);

}

public void Play () throws IOException{

    int i=0;   
    boolean bool=true;    
    int score=0;
    String continuer; 
    Date maDate = new Date();
    String a = maDate.toString() ;

    while (i<nbquest && bool) {
        InputStreamReader isr = new InputStreamReader(System.in); 
        BufferedReader in = new BufferedReader(isr); 

        System.out.println("donner la traduction de "+french);
        String reponseee  = in.readLine();     
        traduction=reponseee;  

        if(bool=true ){ 
            if(traduction.equals(english)){
                score++;
                System.out.println("Bravo! Bonne reponse");
            }else{
                System.out.println("Mauvaise reponse");
            }
        }

【问题讨论】:

  • 请格式化您的代码并仅发布相关代码sn-p。
  • ……你的……你的编码格式……恐怖……
  • 请再次格式化您的代码并删除所有不必要的空格等...
  • 首先使用 ctrl+a 和 ctrl +shift+f 格式化您的代码(如果您使用的是 eclipse..)
  • 你真的需要拿起一本初学者的书,或者阅读一个教程。不要着急。

标签: java class variables


【解决方案1】:

我将忽略源代码并笼统地回答这个问题。您可以直接或使用 getter 访问对象的实例变量。我将在这个例子中使用 getter。

实例变量 - 只要类存在,它们就存在 在类的主体中声明,但不在任何方法中或 构造函数

方法变量 - 与方法一样长,通常不再存在 做一些工作然后就走了,他们在一个 方法/构造函数

public class ClassThatWantsFields {

    public String combineFields(ClassWithFields classWithFields){
        //if I have access to the object classWithFields then I have access to its
        //public methods (and possibly also protected and default access; but this is outside the scope of this question)
        return classWithFields.getEnglish()+classWithFields.getFrench();
    }

    public static void main(String[] args){
        ClassWithFields classWithFields=new ClassWithFields();
        ClassThatWantsFields classThatWantsFields=new ClassThatWantsFields();

        System.out.println(classThatWantsFields.combineFields(classWithFields));
    }

}


public class ClassWithFields {
    private String English; //these are instance variables, they live for as long as the object lives
    private String French;

    private String preservedMayFly; 

    public ClassWithFields(){
        English="A language called English";
        French="A language called French";

        //mayfly is a method variable, it will be gone once the constructor 
        //exits, anything you want to keep for the life of the object should 
        //NOT be a method variable
        String mayfly="I won't live long";

        //preservedMayFly is an instance variable and will live as long as
        //the object
        preservedMayFly=mayfly+"but I can be used within the method"
    }

    public String getEnglish() {
        return English;
    }

    public String getFrench() {
        return French;
    }



}

【讨论】:

    猜你喜欢
    • 2014-12-29
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 2023-02-21
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多