栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java:变量 xx 未在默认构造器中初始化

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java:变量 xx 未在默认构造器中初始化

在Java类中声明了另一个类的final类型的变量,编译时提示“java:变量 xx 未在默认构造器中初始化”。这个是为什么?

首先,要搞明白为什么使用final关键字,final相当于C++的const关键字,一旦定义不能改变:

  • final的变量的值不能被改变
  • final的方法不能被重写
  • final的类不能被继承

所以,如果你想上面这样,就使用final。但用final修饰成员变量或局部变量时,需要注意:

  • 如果和static一起使用,必须在声明时初始化​​​​​​​
public class FianlTest {
	private final static String s = null;
}
  • 不和static一起使用,可以在声明时初始化,也可以在构造函数中赋值
public class FinalTest {
	private final String b = "b";
	// or
	private final String c;
	public FinalTest(String c) {
		this.c = c;
	}
}
  • 类变量,在构造函数中赋值

回到我们的问题,就是这样写:

public class FinalTest {
	private final Test tt;
	public FinalTest(Test tt) {
		this.tt = tt;
	}
}

public class Test {

}

参考:

final关键字及final域的内存语义​​​​​​​

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/830959.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号