访问控制符及接口简介

本文深入解析Java的访问控制符,包括public、protected、default和private,以及它们的使用范围和权限级别。同时,文章详细介绍了Java接口的概念,包括接口的特性、可存在的元素类型以及如何使用接口进行编程。

访问控制符

访问控制符也可称为访问修饰符,可以用来修饰类和成员变量,成员方法以及构造方法。
访问控制符可分为四种类型,分别是:
public: 表示共有的,公共的。用它修饰的类的成员变量能被所有其他类引用。
protected: 表示受保护的。用它修饰的成员变量只能被与它相关的类引用,分别是:它自身所在 类,同一个包下的不同类,和不同包下的子类。
default: 这是一个默认类型的修饰符,不加访问修饰符时定义的方法都是默认的。
private: 表示私有的。用它修饰的变量和方法只能被它自身所在的类引用。
为了能更直观的表示四种控制符能用的地方,我在这里做了一个表格如下:
(‘√’表示能访问,‘×’表示不能访问)

修饰符自身所在类同包而无关系的类不同包的子类其它类
public
protected×
default××
private×××

由表格可以看出权限的范围由大到小为: public->protected->default->private

其它修饰词

上面说了访问控制符又可称为访问修饰符,那我们顺便了解一下Java中的其它修饰词,在这里我要介绍的三种修饰词,分别是:staticabstractfinal
static: 表示静态的。它可以用来修饰成员方法和成员变量。在静态方法中不能直接调用成员变量和成员方法。
abstract: 表示抽象的。它可以用来修饰类和成员方法。
final: 表示最终的。可以用来修饰类,成员变量,成员方法和局部变量。
当用来修饰类时,这个类就不能被继承了。
当用来修饰方法时,这个方法就不能被重写。
当用来修饰变量时,变量就不能再被修改,可以把这个变量看成是一个常量。
当用来修饰引用型变量是,引用的地址不能被修改,但可以修改里面的内容。
下面看一个代码:

public class TestFinal {

    public static void main(String[] args) {
        byte a;
        byte a1=30;
        final byte a2=30;
        a=20+30;
//        a=20+a1;
        a=20+a2;
    }

}

注释掉的那行代码是错误的代码,因为a是一个 byte类型的变量,byte类型的最大值是127。a1也是一个变量,就是说a1是可变的,那就有可能造成a超出范围,所以就报错了。而用final定义的a2是不可再被更改的,因此不会报错。

接口

接口介绍

接口是一种特殊的抽象类。而说到抽象类就要说到两个概念了。
1. 有抽象方法的类叫抽象类-----------------√
2. 抽象类就是有抽象方法的类--------------×
第一种说法是对的,第二种说法是错误的。一个抽象类中是可以没有抽象方法的,但是有抽象方法的类肯定是抽象类。

接口中可以存在的东西

1. 公开的抽象方法
2. 公开的静态常量
从JDK8 开始
3. 静态的方法 static
属于接口的, 通过接口直接调用
4. 默认的方法 default
通常用来做接口功能的扩展, 可以在实现类中覆盖
从JDK9 开始
5.私有方法 private
普通的私有方法: 为了给default方法中的公共代码提取, 实现代码复用
静态的私有方法: 给static方法中公共代码提取的

使用接口的步骤

1. 接口不能直接new对象, 需要一个实现类来 实现接口
public class A implements InterfaceA {

}
将接口中的所有抽象方法 覆盖重写(实现)
2. 创建实现类对象, 调用方法
注意事项: 实现类没有覆盖重写(实现)所有的抽象方法, 这个实现类必须是抽象的

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值