type
status
date
slug
summary
tags
category
icon
password
example-row
example-row
java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。java支持 4 种不同的访问权限。
修饰符
当前类
同一包内
子孙类
其他包
public
Y
Y
Y
Y
protected
Y
Y
Y
N
default
Y
Y
N
N
private
Y
N
N
N

private

被声明为private的方法、变量和构造方法只能被所属类访问,并且类和接口不能声明为private
声明为私有访问类型的变量只能通过类中公共的getter方法被外部类访问。
private 访问修饰符的使用主要用来隐藏类的实现细节和保护类的数据。
请注意以下方法继承的规则:
 

场景举例

假设p1p2是包,ABC三个类在p1EFG三个类在p2, Parentp1包中的类,ABEF分别是Parent的子类,CG不是Parent的子类, Parent中有friendly方法fprotected方法p
  1. 场景:在与父类同包的类中调用在父类中定义的方法
例子: 在ABC中对ParentABEF的类进行实例化,然后调用fp方法:
结果:以上方法的p方法都能被调用,而EF中的f方法不能被调用,因为涉及了跨包。
 
  1. 场景:在与父类不同包,但继承了父类的类中调用父类中定义的方法。
例子: 在E中对ParentABEF的类进行实例化,然后调用fp方法
结果: 以上方法中只有对E(自己)的实例化对象能调用p方法,其他都不能调用,包括Patent实例化的对象。另外,在E中可以通过super.p 去调用。
 
  1. 场景:在不同包,且不继承的类中调用方法
例子: 在G中实例化后调用。
结果: 什么方法都不能被调用。
 

参考:

【java笔记006】时间类转换【java笔记008】基本类型
  • Twikoo