我真的无法弄明白,我怎样才能在不同的类中使用set和get方法。我只需要有两个班级 - 一级,二级。在第一课我已设置并获取,哪些工作正常,但我想在第二课中获取方法,这将返回与第一课中的get方法相同的文本。
一级工作正常,但我应该把它放到第二课?
public class one {
private String name;
public one() {
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
答案 0 :(得分:3)
我认为你作为一个新人可能会尝试做太多的事情。
首先要理解,Class只是对象的模板或蓝图。除此之外,“获取”课程和“设置”课程实际上只是您班级私人数据的公共“包装”。这使您可以作为类作者控制进入您的类并离开它的数据。这就是它的全部内容。
考虑到这一点,Getters和Setter对任何其他类或实例都没有任何想法或概念(除非它们碰巧是该类的成员,我认为这不是这里的情况)。因此,在一个类中使用一个“getter”的想法从另一个类中返回一个值并不完全相加。
答案 1 :(得分:0)
如果您想重用one
中的方法,请将类two
作为one
的子类:
public class two extends one {
}
最好使用正确的命名约定(将类名中的首字母作为大写):
public class One {
}
public class Two extends One {
}
希望这对您有用。
答案 2 :(得分:0)
setter和getter方法对于这两个类都是个体的。
Class1 {
int a; float b;
void setA(int a) { this.a = a; }
int getA() { return this.a; }
}
Class2 {
String s;
void setS(string str) { this.s = str; }
String getS() { return this.s; }
}
除此之外,setter和getter方法没有那么复杂。
如果您有任何特殊要求,您总是希望返回Class1
获取者给出的值,
然后在Class2
getter()方法中,执行
String getS()
{
return obj1.getA().toString();
}
答案 3 :(得分:0)
Setters和Getters是用于获取类字段值的方法。它们是一种使您独立于该值背后的逻辑的法典实践,因为您可以返回一个简单的值
public String getName() {
return value;
}
或做更复杂的事情:
public String getName() {
String modValue = new String();
//Lots of code here
return modValue;
}
如果您需要返回其他内容或执行其他操作,与此特定类交互的类仍将调用setter和getter而不会受到影响(除非您进行重大更改,例如更改值的类型... )。
One classOne = new One();
one.getValue(); //returns the value or executes some logic before. It doesn't matter
//if it changes because the method is the same. Your classes do not
//depend on each other.
吸气剂的替代品是......这......
classOne.value;
你直接访问该字段,这是一个代码气味,灾难和许多我没有词库的adjetives。这样一来,如果你需要在返回它之前做一些重要的事情(想想这就好像你返回一个数字而你现在需要绕过它......你必须改变你所有的代码或者每次得到它时都要对它进行舍入。一个吸气剂你可以在它返回之前将它绕过来。)
您应该在这里考虑您的设计,因为如果您想要返回一个与其他类的值相同的值,您可以考虑将类one
的实例添加到类two
并委派只有当他们以证明这一点的方式相关时才会调用getter。如果对象不相关,则应自行设置该值。
为每个类定义了setter和getter,因为它们与每个特定的上下文相关。你不能定义一个被调用或与另一个类相关的getter,除非这些类是相关的,因为一个包含另一个,或者因为它们之间存在某种连接,例如(给出一些例子):