背景
Java是面向对象的编程语言,Java的世界里一切皆为对象。Java将面向对象的思想发挥到了极致,它将数据和函数有机结合在了一起,使真实世界里面的关系能用更好的逻辑关系在程序中进行体现。以下是它的访问修饰符概述。
java访问修饰符
一,java访问修饰符

(一)public
- 定义为public的class、interface可以被其他任何类访问:
- 定义为public的field、method可以被其他类访问,前提是首先有访问class的权限。
示例
1 | //in package abc |
(二)protected
- protected作用于继承关系。定义为protected的字段和方法可以被子类访问,以及子类的子类访问。
- 子类可访问不同包之间有继承关系的父类中有protected修饰的field和method。
示例
1 | package abc; |
(三)private
- private修饰的field和method不允许被其他类访问。
示例
1 | public class Main { |
(四)package
- 包作用域是指一个类允许访问同一个package的没有public、private修饰的class,以及没有public、protected、private修饰的字段和方法。
- 只要在同一个包,就可以访问package权限的class、field和method。
示例
1 | package abc; |
(五)局部变量
- 在方法内部定义的变量称为局部变量,局部变量作用域从变量声明处开始到对应的块结束。方法参数也是局部变量。
示例
1 | package abc; |
(六)final
- 用final修饰class可以阻止被继承。
- 用final修饰method可以阻止被子类覆写。
- 用final修饰field可以阻止被重新赋值。
- 用final修饰局部变量可以阻止被重新赋值。
示例
1 | package abc; |
(七)总结
- protected修饰符所修饰的类(这句话中指父类)属成员变量和方法,只可以被子类访问,而不管子类是不是和父类位于同一个包中。protected属于子类限制修饰符。
- default修饰符所修饰的类属成员变量和方法,只可被同一个包中的其他类访问,而不管其他类是不是该类的子类。default属于包限制修饰符。