java - 为什么我们不能在java的类构造函数中声明变量?
问题描述
如果在创建对象时构造函数是隐式调用的函数,那么我们应该在构造函数中声明变量,但它会给出错误。
class A{
public A(){
int a =5;
}
}
public class assignment2 {
public static void main(String[] args) {
A obj = new A();
System.out.println(obj.a);
}
}
错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
a cannot be resolved or is not a field
at ass2.main(ass2.java:14)
解决方案
变量int a
不是一个字段,但正如你所说,变量和构造函数将完成后立即它不再可访问,绝对不是obj.a
如果您希望以这种方式使用它,您应该将它的定义移到构造函数之外(所以基本上是 create field ) a
推荐阅读
- php - 使用 xdebug 调试 ionCube 编码的 php 文件时出现 ERR_EMPTY_RESPONSE
- git - 防止 Jenkins 在构建运行时轮询 SCM (Git)
- javascript - 使用 Firestore 无限滚动
- javascript - 滚动时的滚动持续时间
- angular - 点击mailto时IE正在注销/刷新:角度
- performance-testing - 当单个脚本中的并发请求组中有多个 URL 时,如何在脚本中设置 SSL 版本?
- python - 在完整对象上使用 json.dumps 时出现 UnicodeDecodeError,仅在打印特定属性时工作正常
- regex - 如何从下面描述的日志文件中获取具体内容?
- vba - 编写 Word 宏来比较两个单独文档中的值
- php - 当我有超过 25 个总变体时,Woocomerce 不允许我向篮子添加变体