我有一个正在接收用户输入的课程。然后解析结果并存储在我放在下面的这个类中。然后有一个单独的类,它将存储在下面的类中并使用它创建一些东西。我会发布所有类,但是代码行太多了。我已经放在确切的类下面我有一个问题(减去相同类型的其他变量以简化) 我想知道是否有办法从另一个类中的抽象类访问变量。这是我的抽象类:
public abstract class ParsResults {
public String AnsName;
public String AnsType;
}
然后我有另一个需要这些变量的类。我只是不确定如何处理它。提前谢谢。
答案 0 :(得分:0)
ParsResults
的具体子类的实例,则可以使用getter访问其值(请参阅第2点。)。答案 1 :(得分:-1)
要在类之间共享变量,有三种方法:
public class Human {
// instance variables
public String name;
public int age;
//constructor, creates an instance of the Human class.
public Human(String s, int i){
name = s;
age = i;
}
}
在这种情况下,您的实例变量是公共的。 所以在另一个类中,当你通过调用:
创建一个Human类的实例时Human aHuman = new Human(tom, 25);
然后您可以直接访问这两个实例变量。你可以使用:
获得它的价值String theHumanName = aHuman.name;
您可以使用:
设置其值(更改它)aHuman.name = "mike";
以上两行仅在您的变量是公开的情况下才有效。 你应该将它们设为私有的原因是为了防止值从类外部改变。因此,如果它们是私有的,那么您可以根据需要创建get和set方法。 以下是应该如何做的:
public class Human {
// instance variables
private String name;
private int age;
//constructor, creates an instance of the Human class.
public Human(String s, int i){
setName(s);
setAge(i);
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the age
*/
public int getAge() {
return age;
}
/**
* @param age the age to set
*/
public void setAge(int age) {
this.age = age;
}
}
现在从课外,您可以致电:
String theHumanName = aHuman.getName(); // this a method call, therefore you must have the parentheses
您可以使用:
设置其值(更改它)aHuman.setName("mike");
答案 2 :(得分:-2)
您必须实例化该类,但您无法实例化抽象类。 所以首先创建一个不抽象的类,扩展ParsResults,然后实例化这个新类,在你的主中你可以看到这样的变量:
public class NewClass extends ParsResults {
//...
}
public static void main(String [] args){
NewClass nc = new NewClass();
// ...
System.out.println(nc.Name);
}