如何在另一个类的函数中访问一个类的变量?

Posted

技术标签:

【中文标题】如何在另一个类的函数中访问一个类的变量?【英文标题】:How do I access a variable of one class in the function of another class? 【发布时间】:2012-05-01 02:20:05 【问题描述】:

我有一个类 Main(它有 public static void main(String []args))和另一个类 MyDocument

Main 类中有一个变量 text,我想从 MyDocument 类中的函数 alphabetOccurrence() 访问它。我该怎么做呢?我不想将它用作静态变量。并且只能在函数中进行任何更改,其余代码应保持不变。

import java.util.*;

class Main 
    public static void main(String[] args) 
        MyDocument document = null;
        String text;
        text = "good morning. Good morning Alexander. How many people are there in your country? Do all of them have big houses, big cars? Do all of them eat good food?";
        char letter = 'd';
        document = new MyDocument();
        document.setDocumentText(text);
        System.out.println("Letter " + letter + " has occured "
                + document.alphabetOccurrence(letter) + " times");
    


class MyDocument 
    private ArrayList<Character> document = new ArrayList();

    public MyDocument() 
    

    void setDocumentText(String s) 
        for (int i = 0; i < s.length(); i++)
            document.add(s.charAt(i));
    

    ArrayList getDocumentText() 
        return this.document;
    

    public int alphabetOccurrence(char letter) 
        // use text variable here..
    

【问题讨论】:

不是作业:) 这是我的个人作业 【参考方案1】:

您应该更改 MyDocument 类以添加新的 String 字段以保存 text

import java.util.ArrayList;

class MyDocument 

    private String text;
    private ArrayList<Character> document = new ArrayList();

    public MyDocument() 
    

    void setDocumentText(String s) 
        this.text = text;
        for (int i = 0; i < s.length(); i++)
            document.add(s.charAt(i));
    

    ArrayList<Character> getDocumentText() 
        return this.document;
    

    public int alphabetOccurrence(char letter) 

        this.text; //do something

    

【讨论】:

【参考方案2】:

您可以在函数中将可变文本作为参数传递

public int alphabetOccurrence(char letter, String text)
    String text2 = text;
    // use text variable here...

【讨论】:

以上是关于如何在另一个类的函数中访问一个类的变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何在同一个类的静态方法中访问类的受保护变量?

如何从他们自己的类的成员函数中访问公共变量? (C ++)

在MFC中,一个类如何调用其他类的变量和函数??

如何访问子类中的函数?

在另一个类的函数中使用一个类的函数指针

如何在java中调用另一个类中子类里的一个变量?