本课程中使用的OOP概念

now*_*ed. 1 c# java oop class

考虑一个简单的类A.

class A
{
   int id=0;
   public int  getId()
   {
      return this.id++;
   }
}
Run Code Online (Sandbox Code Playgroud)

问题是What are all the OOPS concepts used in the above class?.

我问面试官,OOPS Concepts的意思和回复是什么 general OOPS concepts like inheritance, polymorphism, etc, etc.,

我回答说继承不在上面的代码中(没有派生的基类),我在这个运动中想到的唯一答案就是:

variable-hiding因为私有变量id只能由getId方法访问.

你们有没有抓到的东西?

编辑:

c#会是什么?在java中,我们将默认修饰符设置为internal.如果c#被问到同样的问题,有什么改变吗?

Seb*_*edl 6

一个更好的问题是关于所有违反的良好编程习惯.

Take getId(),看起来像是一个简单的getter,但实际上修改了类的状态.应该叫它generateId(); getNextId()本来可以接受的.

封装(是的,变量隐藏的东西)也被违反,因为它id具有内部的,而不是私有的可见性,使得它在同一个包中的其他类可见是没有充分理由的.