[英]How do you access a private integer (declared in a nested class) from a method within the starter class?
我见过很多关于访问私有方法的问题,但没有看到关于访问私有整数的问题,所以我认为这值得一问。 基本上,我有我的主要 class RunnyStack,以及一个名为 Run 的私有嵌套 class。 在 Run 内部,我初始化了一个私有 integer,长度,我试图从 RunnyStack 中的一个方法访问这个私有 int。
我已经尝试过搜索这个问题(太久了),我发现的答案对我不起作用,因为(根据 class 指令)我需要在 Run 中将长度声明为私有 int。 这意味着(根据我的尝试)我不能执行“Run hello = new Run();”,因为它说“构造函数 RunnyStack.Run() 未定义”。我还尝试了“RunnyStack.Run len = new RunnyStack” .Run();',但它只是说'构造函数 RunnyStack.Run() 未定义'
class RunnyStack<Base> {
private class Run {
private Base base;
private Run next;
private int length;
private Run(Base base, Run next) {
this.base = base;
this.next = next;
this.length = 0;
}
}
此代码显示嵌套私有 class 的创建,包括私有 integer 长度。
public void push(Base base) {
if(isEmpty()) {
top = new Run(base, top);
}
else {
if(base == top) {
length += 1;
}
}
}
这段代码显示了我试图访问长度的方法
我要做的就是访问长度,以便在满足 if 语句时可以增加它。 任何帮助表示赞赏,谢谢!
在Run
class 里面,创建一个 getter 方法:
foo getFoo(){ // Cannot be private
return this.foo;
}
另外:二传手
void setFoo(Foo f){ // Also cannot be private
this.foo = f;
}
您需要实现一个getter
方法 - 这些通常是可以访问私有字段的public
方法。
格式通常是
public field-type getFieldName () {
return fieldname;
}
所以就长度而言
public int getLength () {
return length;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.