如何从不同的类导入String

时间:2014-06-29 22:17:07

标签: java string

我一直在尝试使用构造函数将classA中的字符串导入classB,但我不能在classB中使用字符串,为什么是这样吗?。代码:

A类:

class classA{
        String A="THIS IS THE STRING";
        String B="TEXTL: ";
        public classA(){
        this.A=B+A;
        }   
        }

B类:

class classB extends classA{
    public static void main(String[] args){
        classA newclassA=new classA();
        String Z=A;                           //WHY A IS NOT RECOGNIZED, WHAT DO I NEED TO DO?
    }
}

2 个答案:

答案 0 :(得分:1)

这与变量的范围有关。您可以找到更多信息here

目前,存储在A类中的变量具有包私有范围。有两种方法可以完成你所描述的内容。

更好的解决方案是在classA中提供getter方法:

public String getA(){
   return this.A;
}

这将访问classA类实例中的A变量。然后,您可以将main()更改为以下内容:

public static void main(String[] args){
    classA newclassA=new classA();
    String Z= newclassA.getA(); // Z = "TextL: THIS IS THE STRING";
}

另一种选择是将范围更改为protected以允许子类直接访问变量字段。即。

class classA{
    protected String A="THIS IS THE STRING";
    private String B="TEXTL: ";

    public classA(){
        this.A=B+A;
    }   
}

public static void main(String[] args){
    classA newclassA=new classA();
    String Z= newclassA.A; // Z = "TextL: THIS IS THE STRING";
    // this allows you to access fields as if you were in the actual classA class.
}

答案 1 :(得分:-1)

我希望这会有所帮助。

public class stringName {

        public String getString(String s){

            s =" String in stringName class";
            return s;
        }

}


public class OutputString {

    public static void main(String args[]){

        String s = " ";
        stringName sN = new stringName();

        System.out.println(sN.getString(s) + " The string in the OutputString Class");
    }
}