package com.atguigu10._enum;
import javax.swing.*;
/**
* @Description
* @authr CodePerWorld Email:pche0084@student.monash.edu
* @date
*/
public class SeasonTest {
public static void main(String[] args) {
Season season = Season.spring();
System.out.println(season);
Season season1 = Season.spring();
System.out.println(season1);
}
}
class Season{
private final String SEASON_NAME;
private final String SEASON_DES;
//1.私有化类的构造器
private Season(String SEASON_NAME, String SEASON_DES) {
this.SEASON_NAME = SEASON_NAME;
this.SEASON_DES = SEASON_DES;
}
public String getSEASON_NAME() {
return SEASON_NAME;
}
public String getSEASON_DES() {
return SEASON_DES;
}
// public static final Season SPRING = new Season("Spring", "春暖花开");
// public static final Season SUMMER = new Season("Summer", "夏日炎炎");
// public static final Season AUTUMN = new Season("Autumn", "秋高气爽");
// public static final Season WINTER = new Season("Winter", "白雪皑皑");
//这里原来代码是定义四个属性分别是春夏秋冬然后设置成static就可以通过加载类来获取,但是这样有个问题
//设置成static就会导致如果说我要生成两个season类,而这两个season类都想被我设置成spring,那么这两个类的对象地址就是一样的
//因为static保证了同一个类属性所有对象共享。那么season类中season类对象spring这个属性都是指向同一个,那么自然得到的season类对象spring都是同一个
//所以我做了如下更改,通过定义static方法返回一个Season类来确保可以生成多个同类同变量对象。
public static Season spring(){
return new Season("Spring", "春暖花开");
}
public static Season summer()
{
return new Season("Summer", "夏日炎炎");
}
public static Season autumn(){
return new Season("Autumn", "秋高气爽");
}
public static Season winter() {
return new Season("Winter", "白雪皑皑");
}
//但我又想了一下,既然要定义season类同样的spring对象,为什么就不让它们指向同一个地址呢?共用同一个对象也无大碍?因为这个对象不能更改,
//而且属性也是固定的,完全没必要去新生成要给对象占据空间?
@Override
public String toString() {
return "Season{" +
"SEASON_NAME='" + SEASON_NAME + '\'' +
", SEASON_DES='" + SEASON_DES + '\'' +
'}';
}
}
java笔记,枚举类
于 2023-03-11 10:38:02 首次发布