Java中final关键字,权限,内部类

1.final关键字

final的汉语意思是:最终的;决定性的;不可更改的;跟在Java中的功能一致;

被final关键字修饰的类是最终类,意思就是不能有子类

被final关键字修饰的方法是最终方法子类可以继承使用,但不能修改

final关键字修饰变

被final关键字修饰的变量是常量,一旦赋值,不可被修改,而且必须在初始化对象的时候赋值;

成员变量:final修饰的成员变量必须在声明的时候初始化或者在构造器中初始化,否则就会报编译错误;

局部变量:final修饰的局部变量必须声明时赋值,如果不赋值,虽然声明是不会出错,但调用时会编译出错;

方法参数:如果 final 关键字修饰方法参数时,方法中是不能改变该参数的;

public static void main(String[] args) {
        final int a=2;
        a=4;
    }

2.权限

访问权限控制: 指的是本类及本类内部的成员(成员变量、成员方法、内部类)对其他类的可见性,即这些内容是否允许其他类访问。

Java 中一共有四种访问权限控制,其权限控制的大小情况是这样的:public > protected > default(包访问权限) > private

1、public: 所修饰的类、变量、方法,在内外包均具有访问权限;
2、protected: 这种权限是为继承而设计的,protected所修饰的成员,对所有子类是可访问的,但只对同包的类是可访问的,对外包的非子类是不可以访问;
3、包访问权限(default): 只对同包的类具有访问的权限,外包的所有类都不能访问;
4、private: 私有的权限,只对本类的方法可以使用;

3.内部类

内部类一般分为四类

成员内部,类静态内部类,局部内部类,匿名内部类

成员内部类就是定义在一个类里面的类

public class Test02 {
    public double a = 0;
    private int b =1;
    class abc {
        public void Inner() {
            //内部类是可以访问外部类的成员属性和成员方法的
            System.out.println(a);
            System.out.println(b);
        }

    }
}

静态内部类和成员内部类相似,只是有static修饰符。

public class Test02 {
    public double a = 0;
    static private int b =1;

    public class static abc {
        //跳红
        System.out.println(a);
        //正常的
        System.out.println(b);
    }
}

匿名内部类就是没有名字的类,主要优点在于编写方便,但是有个前提,内部类必须继承或者实现一个外部类或者接口

public class Test02 {
    public InnerClass getInnerClass(final int num,String str2){
        return new InnerClass(){
            int number = num + 3;
            public int getNumber(){
                return number;
            }
        };
    }
    public static void main(String[] args) {
        Test02 out = new Test02();
        InnerClass inner = out.getInnerClass(2, "chenssy");
        System.out.println(inner.getNumber());
    }
}
//此处要有接口的声明
interface InnerClass {
    int getNumber();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值