智能客服
你问我答,随时在线为你解决问题
华为要出国产编程语言仓颉了!牛x
一、访问修饰符
写了十几年的代码,用过几种语言,Java最长。在对代码封装时,总是有一点遗憾:
Java访问修饰符:public、protected、default、private四种,如下类Class2,有四个方法

package1、package2,是同级包,package10、package11是package1下的同级包
我期望,Class2有个方法,Class1、Class3能调用(可见),Class8不能调用(不可见)
public 的testA(),Class1、Class3可见,Class8也可见
default 的testC(),仅Class3可见
testB(), testD(),一样都达不到这样的要求
二、为什么会有这样的需求呢?
比如设计一个网络收发节点1

network1为上层包,下面分为 recv、send包,
Net1Manager类,统筹发送和接收,是网络节点1对外的门面,所有对网络节点1的操作,只能通过这个类,实现完美的封装、隔离、内聚。
Receiver类(接收器)、Sender类(发送器)在不同的子包。

Sender类的sendData()方法,Net1Manager类是必须要调用的,所以只能是public,而这就导致sendData()方法对网络节点2的Net2Manager类可见!这是不应该的!!!
三、建议
希望仓颉有一种修饰符,让那个方法包内可见、上层包可见,使得代码能封装得更好!
.net 的 internal 修饰符,有类似的功能,但是还是差点意思
我要发帖子