首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >限制包在其他包中使用时对包私有变量的访问

限制包在其他包中使用时对包私有变量的访问
EN

Stack Overflow用户
提问于 2012-01-26 15:06:18
回答 2查看 262关注 0票数 0

xyz公司创建了一个包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
com.xyz.utils.

在两个单独的文件中声明了两个类。它们有一些变量作为包私有。这样A类中的变量X就可以在同一个包的B类中使用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.xyz.utils;
public class A{
int a=10;
}

package com.xyz.utils;
public class B{
int b = (new A()).a;
}

这两个文件被编译成jar并发送给客户。

客户将jar添加到他正在构建的项目中,并编写如下代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.xyz.utils;

public  class customer_class
{
     int  Y = (new A()).a;
}

上面的代码是否正确?

我的疑问是。我们如何使声明为包私有的变量在其他人使用包时不可见。

EN

回答 2

Stack Overflow用户

发布于 2012-01-28 10:05:59

答案是“不”--你不能阻止他们这么做。

票数 0
EN

Stack Overflow用户

发布于 2012-01-28 10:58:49

这在一般情况下是做不到的。我认为,您可以在jar清单中seal the package 'com.xyz.utils‘,以告诉用户:不要将他们的类定义在密封的包中作为最佳实践。但您不能限制您的库的用户执行此操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9020172

复制
相关文章
C++ 操作符重载形式——成员函数 or 友元函数
操作符重载,又名运算符重载,是 C++ 多态的重要实现手段之一。通过运算符重载对运算符功能进行特殊定制,使其支持特定类型对象的运算,执行特定的功能,增强 C++ 的扩展功能。
恋喵大鲤鱼
2022/12/02
1.1K0
C++重载操作符
什么叫重载操作符?这要先说什么是操作符,其实最简单的:+、-、*、/、<<就都是操作符,这些也是很常见的重载操作符。
Cloudox
2021/11/23
3280
C++ 重载操作符
C++ 几乎可以重载全部的运算符,而且只能够重载C++中已经有的。 · 不能重载的运算符:“.”、“.*”、“::”、“?:” · 重载之后运算符的优先级和结合性都不会改变。 可以重载为类的非静态成员
雪碧君
2023/02/15
2830
c++操作符重载
定义 运算符重载的 实质 是 函数的重载 使用意义 赋予操作符更多的意义,同一个运算符,对不同类型的操作数,所发生的行为不同是 程序更加简洁 写法格式:返回值 operator运算符(参数列表){} 重载的要求: 1、内置类型的操作符不能被重载 2、不能为内置类型定义其他的操作符 3、操作符重载不能改变操作符的优先级 4、操作数个数不能改变 重载方式: 1、类的成员方法 2、类的有友元方法 3、全局方法 注意: ++a和a++的重载区别。a++的重载方法中多一个占位参数 最好不好重载&&和||。因为无
用户2929716
2018/08/23
4440
C++赋值操作符重载
赋值操作符是一个使用频率最高的操作之一,通常情况下它的意义十分明确,就是将两个同类型的变量的值从一端(右端)传到另一端(左端)。但在以下两种情况下,需要对赋值操作符进行重载。 一是赋值号两边的表达式类型不一样,且无法进行类型转换。 二是需要进行深拷贝。
恋喵大鲤鱼
2019/02/22
5950
【C++】函数重载 ③ ( 为函数指针赋值重载函数 )
之前的博客 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读) 六. 函数指针 章节中 , 详细介绍了 函数指针 , 以及 函数指针 与 数组 , 其它指针 结合的 复杂指针如何进行解读 ;
韩曙亮
2023/10/15
3110
【C++】函数重载 ③ ( 为函数指针赋值重载函数 )
C++赋值操作符重载简介
赋值操作符是一个使用频率最高的操作之一,通常情况下它的意义十分明确,就是将两个同类型的变量的值从一端(右端)传到另一端(左端)。但在以下两种情况下,需要对赋值操作符进行重载。 一是赋值号两边的表达式类型不一样,且无法进行类型转换。 二是需要进行深拷贝。
恋喵大鲤鱼
2018/08/03
7760
C++ 类型转换操作符重载
示例template <typename T>operator T () const{}Poco库中的使用Var.hPoco::Dynamic::Vartemplate <typename T>operator T () const{ VarHolder* pHolder = content(); if (!pHolder) throw InvalidAccessException("Can not convert empty value."); if (typeid
code-x
2022/08/31
4760
函数重载-C++
/* 功能:函数重载 日期:2013-09-23 */ #include <iostream> using namespace std; int fun(int a=1,int b=2) { int sum; sum = a * a + b * b; return sum; } float fun(float a,float b) { float sum; sum = a * a + b * b; return sum; } double fun(double a,double b)
WindCoder
2018/09/20
6010
C++ 函数重载
C++允许用同一个函数名定义多个函数,而这些函数的参数个数和参数类型可以不相同。这就是函数重载。
chaibubble
2019/05/26
5660
C++函数重载
在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。例如希望交换两个变量的值,这两个变量有多种类型,可以是 int、float、char、bool 等,我们需要通过参数把变量的地址传入函数内部。在C语言中,程序员往往需要分别设计出三个不同名的函数,其函数原型与下面类似:
芯动大师
2023/10/14
1600
C++函数重载
【C++】函数重载 ② ( 重载函数调用分析 | 函数重载特点 | 函数重载与默认参数 )
重载函数 调用查询 分析 : 调用一个重载函数 , 如何从多个重载函数中找出自己要调用的函数 , 流程如下 :
韩曙亮
2023/10/15
3380
【C++】函数重载 ② ( 重载函数调用分析 | 函数重载特点 | 函数重载与默认参数 )
【Groovy】集合遍历 ( 操作符重载 | 集合中的 “ + “ 操作符重载 | 集合中的 “ - “ 操作符重载 | 代码示例 )
对集合使用 " + " 运算符 , 其作用相当于 调用 plus 方法 , " + " 符号两侧的值就是 plus 方法的
韩曙亮
2023/03/30
1.2K0
【Groovy】集合遍历 ( 操作符重载 | 集合中的 “ + “ 操作符重载 | 集合中的 “ - “ 操作符重载 | 代码示例 )
C++之函数重载
函数重载定义: 如果同一作用域内的几个函数名字相同但形参列表不同; 重载与const形参: Record (Phone); = Record(const Phone); Record(Phone*) =Record(Phone *const); Record(Phone&); 不等于 Record(const Phone&); Record(Phone *); 不等于 Record(const Phone*);
互联网金融打杂
2018/04/03
6590
c++函数重载概念及重载规则
函数重载概念: 用一个函数名定义不同的函数,当函数名和不同的参数搭配是函数的含义不同。
lexingsen
2022/02/24
9440
C++的重载函数
在C语言中,一个函数名只能用于一个函数,不能出现多个函数用一个函数名的情况,即使这些函数的类型和参数不一样。
叶茂林
2023/07/28
1550
C++之函数重载
函数重载是:函数名相同,但是函数参数不同的函数之间的关系。函数重载只能通过函数参数的不同来实现,这包含参数个数不同和参数类型不同。 !!! 重载不是面向对象的特征。
zy010101
2020/04/08
7460
C++之操作符重载学习总结
1、我们先来看一个问题实现,下面的复数解决方案是否可行,复数大家应该都不陌生(分为实部和虚部):
用户6280468
2022/03/21
2710
PHP 中的操作符重载
操作符重载是一种语法糖,它在 C++、Python、Kotlin 等编程语言中被广泛使用。这一特性有助于我们写出更加整洁、表述力更强的代码,尤其是当我们对某些对象进行数学操作时。
桶哥
2019/06/04
1.5K0
c++之函数重载
作用:函数名可以相同,提高复用性。 喊出重载满足条件: 同一个作用域; 函数名相同 函数参数类型不同或者个数不同或者顺序不同; #include<iostream> using namespace std; //函数重载需要函数在同一个作用域下 void func() { cout << "调用func()" << endl; } void func(int a) { cout << "调用func(int a)" << endl; } void func(float a) { c
西西嘛呦
2020/08/26
4470

相似问题

重载<<操作符(C++)的函数调用

10

C++:用函数指针重载<<操作符

23

C++重载操作符、构造函数等

20

如何在c++中重载赋值操作符

14

如何在C++中重载索引操作符?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文