java - 无法从 Java 中的另一个类访问变量?

标签 java variables methods arguments

我试图调用我在另一个类中创建的变量 numFriends,但是当我尝试这样做时,它显示“numFriends 无法解析为变量”。每次添加新 friend 时,该变量都会递增,我想在我的测试类中显示该变量。这是我的代码:

一级

public class Person {

    private String fullName;
    private char gender; 
    private int age;

    public static int numFriends = 0;

    public Person(String nm, char gen, int a) {
        fullName = nm;
        gender = gen;
        age = a; 
        numFriends++;
    }

    public void setName(String nm) {
        fullName = nm;
    }

    public void setAge(int a) {
        age = a;
    }

    public int getAge() {
        return age;
    }

    public void setGender(char g) {
        gender = g;
    }

    public String toString() {
        return (fullName + ", gender = " + gender + ", age = " + age );
    }

}

第二类(可执行文件)

public class TestPerson {

    public static void main(String[] args) {

        System.out.println(numFriends + " people at first");

        Person p1 = new Person("Otto Mattik", 'M', 22);
        p1.setName("Otto Mattik");
        p1.setGender('M');
        p1.setAge(22);
        System.out.println("Person Full Name = " + p1);

        Person p2 = new Person("Anna Bollick", 'F', 19);
        p2.setName("Anna Bollick");
        p2.setGender('F');
        p2.setAge(19);
        System.out.println("Person Full Name = " + p2);


        Person p3 = new Person("Dick Tator", 'M', 33);
        p3.setName("Dick Tator");
        p3.setGender('M');
        p3.setAge(33);
        System.out.println("Person Full Name = " + p3);

        changeName(p2, "Anna Bollik-Mattik");

        Person[] people = {
                p1, p2, p3
        };

        agePersons(people, 5);

        System.out.println("\n" + numFriends + " people after 5 years");

        for (Person person : people)
            System.out.println("Person fullName: " + person);

    }

    public static void changeName(Person p, String name) {
        p.setName(name);
    }

    public static void agePersons(Person[] people, int years) {
        for (Person person : people)
            person.setAge(person.getAge() + years);
    }
}

最佳答案

您需要说Person.numFriends。这是因为numFriends是Person类的静态成员,所以需要使用Person类来引用numFriends。

关于java - 无法从 Java 中的另一个类访问变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37868767/

相关文章:

java - 在 Java 中从 GUI 添加数据

java - 报告了错误的 OpenGL 版本

使用字段名称作为变量的 C# Linq 查询数据库

iphone - 发送多个方法参数与发送一个然后在目标方法中解码

python - 属性在对 FlaskView 的请求之间永远不会更新

ios - 将另一个类的项目添加到另一个类的属性。 Objective-C

java - Java HTTP Client 是否处理压缩

java - 是否可以使用 Firebase Admin SDK 将消息发送到 FCM 客户端的一批 token ?

javascript - 赋予 A 与 B 相同的值,但不使它们相互关联

JavaScript 变量引用