Post

Java TS CPP语法基础

Java TS CPP语法基础

成员访问权限

访问修饰符基础对比

访问级别JavaC++TypeScript
公开publicpublicpublic
受保护protectedprotectedprotected
私有privateprivateprivate
包/模块级默认(无关键字)
友元friend
只读/不可变final (字段)const / mutablereadonly
静态staticstaticstatic
抽象abstract纯虚函数 = 0abstract

Java

修饰符同类同包子类(不同包)其他类(不同包)说明
private仅本类可见
(默认/包私有)无关键字,同包内可见,跨包不可见
protected同包 + 不同包的子类可见
public全局可见

Java 的 protected 允许不同包的子类访问,但仅限于通过子类引用访问继承的成员,不能通过父类引用或其他子类实例访问。

CPP

说明符同类子类外部代码说明
private仅本类成员和友元可见
protected本类 + 子类成员和友元可见
public所有代码可见

额外机制:

机制作用
friend授予特定类或函数访问 private/protected 成员的权限,打破封装边界
using Base::member在派生类中改变基类成员的访问级别(提升或降低)
继承方式 (public/protected/private 继承)批量调整基类所有 public/protected 成员在派生类中的访问级别
mutable允许在 const 成员函数中修改特定成员(逻辑上不影响对象状态)

Typescript

修饰符同类子类外部代码运行时效果
private⚠️ 无(仅编译检查)
protected⚠️ 无(仅编译检查)
public
#field (ES私有)✅ 真私有(运行时强制)
This post is licensed under CC BY 4.0 by the author.