有关在类中声明一个创建这个类的对象,那么在main方法中创建这个对象会无限创建这个对象吗,为什么?求解答,非常感谢!!

h3xz 2020-08-13 10:33:28
class Season{

private String seasonName;
private String seasonDesc;

private Season(String seasonName , String seasonDesc) {
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
}

public static final Season SPRING = new Season("春天" ,"spring");
public static final Season SUMMER = new Season("夏天" ,"summer");
public static Season AUTUMN = new Season("秋天" ,"autumn");
public static Season WINNTER = new Season("冬天" ,"winnter");

public String getSeasonName() {
return seasonName;
}

public String getSeasonDesc() {
return seasonDesc;
}

public String toString() {
return "seasonName = "+seasonName+", seasonDesc = "+seasonDesc;
}
}


public class EnumTest_01 {
public static void main(String[] args) {
Season SPRING = Season.SPRING;//会无限创建Season对象吗?看了好久还是不会,求解答,谢谢!
System.out.println(SPRING.SUMMER.SPRING);

}
}
...全文
3526 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
h3xz 2020-08-14
  • 打赏
  • 举报
回复
非常感谢热心帮助我的人,问题已经解决,真的非常感谢。
qq_39936465 2020-08-14
  • 打赏
  • 举报
回复
引用 楼主 HXZ_CREATE 的回复:
class Season{ Season SPRING = Season.SPRING;//会无限创建Season对象吗?看了好久还是不会,求解答,谢谢!
静态只执行一次这个是基础,基础一定要牢牢掌握。
maradona1984 2020-08-13
  • 打赏
  • 举报
回复
不会. 为啥要问这种问题,直接测试不报错的话,那就不会无限,递归没有跳出会栈溢出的
sunyiz 2020-08-13
  • 打赏
  • 举报
回复
你在说啥呢?你 Season.SPRING 不是静态的吗? 静态的属性在类加载时就生成了 静态的属性是类的属性,不是对象的属性

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧