包和权限修饰符以及final关键字、常量、枚举

1.包相关

每一个类文件最前面的可执行代码(不包括注释,注释不会执行)必须是包文件代码,目的是帮助计算机找到此文件的位置

导包要用到import关键字,像之前使用Random和Scanner对象的时候idea会自动帮助我们创建

import java.util.Random;
import java.util.Scanner;

包的本质就是一个个文件夹,帮助我们对类文件分类管理

2.权限修饰符

有四种,权限从大到小分别是public protected 缺省(默认,就是什么都不写)private

其中,private只能在同一个类中被访问,缺省在同一个包中可以被访问,protected在同一个包中也可以被访问,但是在另外一个包中的子类中也可以访问,但是原理是由于子类可以继承父类的方法,所以并不是调用了父类的方法。public则是任何包中都可以访问

3.final关键字

被final修饰的类不能被继承,但是可以继承其他类

被final修饰的方法不能被重写

被final修饰的变量里面的值不能改变(注意,如果变量里面存储的是除String以外的引用数据类型,实际上存储的是它的地址,而地址里面的属性值还是可以改变的)

4.常量

值不能改变的量也就是final修饰的基本数据类型以及String类型的变量称为常量

命名规范:全部大写,如果有多个单词则用下划线分开

作用:管理信息,方便程序的可读性

宏替换:在编译的时候就可以确定常量的值的话,在编译的时候就可以将程序中用到这个常量的变量名变成常量值,节省了内存空间  

5.枚举

枚举是一种特殊的类,定义的格式是 public enum 枚举类名 {...}

里面第一行必须是枚举项

所有的枚举类都是Enum的子类

枚举类有构造器,但是被private修饰私有了

通过枚举类名.枚举项名称来访问指定的枚举项

每一个枚举项其实就是该枚举类的一个对象

属于多例模式

作用:枚举和常量一样都可以用于管理信息,但是通过枚举管理信息不仅可读性好,而且对传入的参数有了约束(必须是枚举类的一个项,即枚举类名.枚举项)代码示例如下

public enum Holiday {
    GUO_QING,NEW_YEAR,LAO_DONG;
}
public class Demo02 {
    /*static String CHUN_JIE = "春节节";
    //在类中方法外无法对成员变量进行重新赋值
    //CHUN_JIE ="你好";

    static final String GUO_QING = "国庆节";
    static final String LAO_DONG = "劳动节";*/


    public static void main(String[] args) {
        //CHUN_JIE ="你好";
        /**
         * 作用:用作信息标志和分类
         *
         * 原因:
         *      常量虽然也可以用作信息标志和分类,实现可读性,但是入参值不受约束,代码相对不够严谨
         *      枚举代码可读性好,入参约束严谨,代码优雅,是最好的信息分类技术!建议使用
         *
         * 需求:使用枚举优化sendMsg方法,使入参值(实参)可被约束
         */
        /*sendMsg("国庆节");
        sendMsg("春节");
        System.out.println("------------");
        sendMsg("重阳节");*/
        //无法判断用户输入的是什么值,可能不属于其中之一
        /*sendMsg("你好");
        sendMsg(GUO_QING);*/
        System.out.println(Holiday.GUO_QING);
        sendMsg(Holiday.NEW_YEAR);
    }


    /**
     * 方法实现发短信功能
     * 可根据参数的内容,决定发什么短信内容
     */
    public static void sendMsg(Holiday holiday) {
        switch (holiday) {
            case NEW_YEAR:
                System.out.println("过年好");
                break;
            case LAO_DONG:
                System.out.println("劳动节好");
                break;
            case GUO_QING:
                System.out.println("国庆节好");
                break;
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值