静态方法(续)+枚举

静态方法(续)+枚举

  • 静态方法中没有隐式this
    • 静态方法中没有隐式this传递
    • 没有this就意味着没有对象
    • 而实例变量a是必须通过对象来访问的
    • 静态方法中不能直接访问实例成员的
  • 静态方法的使用:
    • 方法的操作与对象无关(不需要访问对象的属性/行为)

static、final常量

  • 由static和final共同修饰的成员变量,即为常量
  • 建议:常量名所有字母都大写,多个单词之间用_分隔
  • 必须同时声明初始化
  • 常常通过类名来访问,不能被改变
  • 常量的特征:
    • 编译器在编译时会将常量直接替换为具体的数,效率高
    • 相当于System.out.println(变量);
    • 何时用:
      • 在程序运行过程中数据永远不变,并且经常使用

枚举

  • 是一种引用数据类型
  • 枚举类型的对象数目时固定的,常常用于定义一组常量
  • 枚举的构造方法都是私有
  • 枚举的第一行默认都是罗列枚举对象名称
  • 枚举默认都继承自Enum类,其中提供了一组方法供我们使用
public enum Seasons {
   // public static final Seasons SPRING =new Seasons();
   // public static final Seasons SUMMER =new Seasons();
   // public static final Seasons AUTUMN =new Seasons();
   // public static final Seasons WINTER =new Seasons();
    SPRING,SUMMER,AUTUMN,WINTER;//表示Seasons的固定的4个对象,都是常量
}
public class EnumTest {
    public static void main(String[] args) {
        Seasons[] seasons =Seasons.values();
        for (int i=0;i< seasons.length;i++){
            System.out.println(seasons[i]);
        }
    }
}
//复杂版本:
public enum Seasons {
    
    //public static final Seasons SPRING =new Seasons("春天","暖和");
    //public static final Seasons SUMMER =new Seasons("夏天","热");
    //public static final Seasons AUTUMN =new Seasons("秋天","凉爽");
    //public static final Seasons WINTER =new Seasons("冬天","冷");
    SPRING("春天","暖和"),
    SUMMER("夏天","热"),
    AUTUMN("秋天","凉爽"),
    WINTER("冬天","冷");

    private String seasonsName;

    private String seasonsDesc;
    private Seasons(String seasonsName,String seasonsDesc){
        this.seasonsName=seasonsName;
        this.seasonsDesc=seasonsDesc;
    }

    public String getSeasonsName() {
        return seasonsName;
    }

    public void setSeasonsName(String seasonsName) {
        this.seasonsName = seasonsName;
    }

    public String getSeasonsDesc() {
        return seasonsDesc;
    }

    public void setSeasonsDesc(String seasonsDesc) {
        this.seasonsDesc = seasonsDesc;
    }
}
public class EnumTest {
    public static void main(String[] args) {
        Seasons s =Seasons.SPRING;
        System.out.println(s.getSeasonsName()+","+s.getSeasonsDesc());
        System.out.println("---------");
        Seasons[] ss =Seasons.values();
        for (int i = 0;i< ss.length;i++){
            System.out.println(ss[i]+","+s.getSeasonsName()+","+s.getSeasonsDesc());
        }
    }
}

补充

  • 接口中的成员的默认权限时public,重写方法时要求派生类方法的访问权限必须大于或者等于超类方法
  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值