【问题标题】:Java Get and Set usage [closed]Java Get 和 Set 用法[关闭]
【发布时间】:2016-12-01 10:13:18
【问题描述】:

我是 Java 和编程新手,但我遇到了一个问题。我的代码编译,但给我错误:无法找到或加载主类 PatienTest。你能解释一下我的错误在哪里以及我做错了什么。这是我的代码:

class Patient {

    private String name;
    private int age;
    public String newName;

    public String getName() {
        return name;
    }

    public void setName() {
        name = newName;
    }

    public int getAge() {
        return age;
    }

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

class PatientTest {

    private Patient pat;

    public boolean isChild() {
        return (pat.getAge() < 15);
    }

    public void main(String[] args) {
        System.out.println(isChild);
    }
}


class PatientTest {

    private Patient pat;

    public boolean isChild() {  
        return (pat.getAge() < 15);
    }
    public  void main(String[] args) {
        System.out.println(isChild);
    }
}

【问题讨论】:

  • 这两个类是否在同一个文件中?
  • 你错过了 main 方法的静态
  • 当我将其设为静态时会显示此错误:无法从静态上下文 System.out.println(isChild) 引用非静态变量 isChild; ^ 1 个错误 [在 0.8 秒内完成,退出代码为 1]
  • 你搜索了吗?有类似的问题。它必须是静态的。但在那之后,您需要知道如何在静态上下文中使用实例。

标签: java get set runtime-error


【解决方案1】:

为了编写正确的java代码,当你想运行main方法时,你必须做如下:

在 Patient.java 文件中:

public class Patient {
    private String name ;
    private int age ;
    public String newName;

    public String getName() {
        return name;
    }
    public void setName(){
        name = newName;
    }
    public int getAge(){
        return age;
    }
    public void setAge(int newAge){
        age = newAge;
    }
}

在 PatientTest.java 文件中:

public class PatientTest {

    public static boolean isChild(Patient patientToBeTested) {
        return (patientToBeTested.getAge() < 15);
    }

    public static void main(String[] args) {
        Patient patient = new Patient()
        patient.setAge(12) // add your age
        System.out.println(this.isChild(patient));
    }
}

【讨论】:

  • 编写正确的 java 代码 我不完全同意,你可以有内部类。但是,在这种情况下,主要方法不能在内部类中。
  • 这不会运行,除非你把 static 放在你的 main 方法上。
  • 确实,当你有一个 main 方法时,正确的 java 代码。我将编辑我的答案
  • @msagala 谢谢,我编辑了我的答案
  • 这也不会运行。会有编译错误先生,请在您的 isChild 方法中使用静态。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多