Oop 如何使一个方法只能被一个类访问?

Oop 如何使一个方法只能被一个类访问?,oop,language-agnostic,Oop,Language Agnostic,比如说我有一个班顶和一个班底。一些“外部代码”可以调用类Top的方法,这将导致类Top访问类Bottom的方法。但如何确保它只以这种方式工作,并且除了Top之外,没有人会尝试直接访问Bottom 下面是一个例子: 如果我将底部设置为私有,顶部将无法访问它。如果我把底部公开,每个人都能做到。这两者之间有什么区别吗?我听说你们喜欢绘制UML图,但是有没有办法在IDE中增强您的设计?为什么?何时更改?根据请求将我的评论移动到真实答案 < C >,我非常肯定C++,看起来你在寻找嵌套类型。 msdn.m

比如说我有一个班顶和一个班底。一些“外部代码”可以调用类Top的方法,这将导致类Top访问类Bottom的方法。但如何确保它只以这种方式工作,并且除了Top之外,没有人会尝试直接访问Bottom

下面是一个例子:


如果我将底部设置为私有,顶部将无法访问它。如果我把底部公开,每个人都能做到。这两者之间有什么区别吗?我听说你们喜欢绘制UML图,但是有没有办法在IDE中增强您的设计?为什么?何时更改?

根据请求将我的评论移动到真实答案

< C >,我非常肯定C++,看起来你在寻找嵌套类型。 msdn.microsoft.com/en-us/library/ms173120.aspx

public class Container
{
    public Container()
    {
         Nested nested = new Nested();
         nested.DoIt();
    }

    class Nested
    {
        private Container parent;

        public Nested()
        {
        }

        public Nested(Container parent)
        {
            this.parent = parent;
        }

        public void DoIt()
        {
        }
    }
}

你想用什么语言来实现它?或者,你想用一种范式来使用任何OO语言吗?如果我把它变成这个简单的东西,我会很容易地迁移到一个你会说出的语言。在C语言中,C++也一样,我记得你有嵌套的类型,我想你对肯尼的要求是什么样子的。让它成为一个真实的答案,我会把它标记为接受。谢谢你。。。