如何使用该包中的公共类访问某些/另一个包中的默认类。
例如,
我的Bank package
有两个班级
public class Bank { ... }
class Account { ... }
(默认访问修饰符)
我需要使用Account
访问名为package
的其他Atm
中的Bank
。
有什么建议吗?
答案 0 :(得分:0)
根据java的╔═════════╦════════════════════════════╗
║ ItemIdx ║ Data ║
╠═════════╬════════════════════════════╣
║ 1 ║ 0x001122338899AABB44556677 ║
║ 2 ║ 0xFFEEDDCC77665544BBAA9988 ║
╚═════════╩════════════════════════════╝
规则,
默认事物(类/方法/实例)不得在另一个中可见 封装
所以,在你的情况下,不可能通过另一个访问它 包,因为那里的默认类不可见。
默认事物只在相同的包中可见,只有在它定义/声明
的地方
答案 1 :(得分:0)
您无法直接从其他软件包访问此类,但您可以使用proxy pattern并通过调用Bank方法调用Account方法
答案 2 :(得分:0)
根据定义,java中类的默认访问修饰符只能从其包中访问(参见here)。
如果您有权访问源代码,则应考虑将访问级别更改为public。否则,您可以尝试通过同一包中的公共类访问该类。
package test.bankaccount;
public class Bank {
public Account getAccount(int id) {
//here goes the code to retrieve the desired account
}
}
package test.bankaccount;
class Account {
// class implementation
}
无论如何,您应该记住,访问限制总是描述应用程序的工作方式。你应该问问自己为什么一个特定的课程不公开。
如果这些类是您自己的代码,那么问问自己,您所使用的访问限制是否正确表示了您希望应用程序运行的方式。