Tag: oop

在C#中另一个类中声明的类

我正在处理一些遗留代码,并遇到了一些我不确定的事情。 我们有一个在另一个class x声明的class x 。 Class y只在class x使用,但我的问题是为什么你不创build一个单独的类文件,并把class y放在那里,而不是在class x中声明它? 这不是违反了OOP吗?还是只是一个风格问题,因为它只被用在这个类的内部。 我正在重构这些代码,我的第一个反应是把class y到它自己的文件中。 namespace Library { public class x { // methods, properties, local members of class x class y { // methods, properties, local members of class y } } }

强制接口的子类实现ToString

假设我有一个接口IFoo ,我希望IFoo所有子类重写Object的ToString方法。 这可能吗? 简单地将方法签名添加到IFoo是行不通的: interface IFoo { String ToString(); } 因为所有的子类都扩展了Object并提供了一个实现,所以编译器不会抱怨它。 有什么build议么?

Javascript对象列表按对象属性sorting

我需要这样做: (对不起,在JavaScript语法 – 仍然学习对象语言:)) 对象=车 attibutes:最高速度,品牌…. 现在我想按照最高速度,品牌排列这些车的名单… 我如何做到这一点(请注意,解决scheme必须是只有JavaScript,没有PHP或其他的东西)?

我可以包含代码到PHP类吗?

我想做一个PHP类,让我们说Myclass.php。 现在在这个类里面我只想定义类本身和一些实例variables。 但是所有的方法都必须来自Myclass_methods.php文件。 我可以将该文件包含到类体中吗? 我有很好的理由,为什么我要分开这个。 简而言之,我会有一个后端,在这个后端中我可以改变一个类的业务逻辑,而所有其他的东西都必须保持不变。 系统为我维护所有的ORM和其他东西。 但是,如果这是一个坏主意,在编辑业务逻辑之后重新生成整个类文件(在这种情况下是用户定义的方法)可能会更好。 性能问题:如果在一个请求中包含Myclass.php一次,实际上Myclass_methods.php也应该只包含一次。 可能是错的。 专家?

方法与C#中的属性 – 有什么区别

可能重复: 属性与方法 在方法中,你也可以input一些代码和属性。 例如我有一个属性名称。 当类名更改时,我想从数据库中获取一些数据并更改我的对象的状态。 我可以添加这个代码来设置我的属性的一部分。 其他解决scheme是将set part更改为private,并添加名为SetName的方法,并在此方法中添加我的代码。 那么区别是什么呢? 什么时候把getter / setter的一些代码和创build自己的方法用来改变我的属性和我的类的其他部分是不好的?

接口:为什么我似乎无法把握他们?

有人能为我揭开界面的神秘面纱,或者指出一些很好的例子。 我不断看到接口在这里和那里popup,但我从来没有真正接触到接口的良好解释或何时使用它们? 我正在谈论界面与抽象类的接口

C#如何缺less多重inheritance导致需要接口?

在C#编程语言中, Krzysztof Cwalina在注释中指出: 我们明确地决定不添加对多重inheritance的支持[…]缺乏多重inheritance迫使我们添加接口的概念,而接口的概念反过来又对框架的演化,更深的inheritance层次结构和其他许多问题负责问题。 接口是面向对象编程语言的核心概念。 我不遵循“强迫我们添加接口的概念”的意思, Krzysztof是否意味着必须对使用否则将使用多重inheritance的接口进行某些devise决定? 或者,他的意思是说interface是由于缺乏多重inheritance而引入C#的? 你能提供一个例子吗?

Java编程testing面试

这是面试中使用的编程testing。 我发现它有一个非常奇怪的非面向对象的观点,并想知道为什么有人会从这个angular度来看待构造函数。 作为一个非常有经验的Java程序员,我立即质疑编写这个代码的人的能力和这个问题的奇怪的视angular。 我在面试中发现这些奇怪的问题。 我会喜欢其他有经验的OO Java程序员的反馈。 完成Solver构造函数,以便对resolveAll的调用返回包含平方根和作为parameter passing的整数的倒数的2个值的列表。 public interface MathFunction { double calculate(double x); } public class Solver { private List<MathFunction> functionList; public Solver() { //Complete here } public List<Double> solveAll(double x) { List<Double> result = new ArrayList<Double>(); for (MathFunction function : this.functionList) { result.add(new Double(function.calculate(x))); } return result; } }

具有相同名称的静态和实例方法?

我在C#中有一个静态和非静态接口的类。 在具有相同名称和签名的类中,是否有可能使用静态方法和非静态方法? 当我尝试这样做时出现编译器错误,但由于某种原因,我认为有一种方法可以做到这一点。 我错了还是没有办法在同一个类中同时使用静态方法和非静态方法? 如果这是不可能的,是否有一个很好的方法来实现这样的东西,一般可以适用于任何情况? 编辑 从我收到的回复中,显然没有办法做到这一点。 我要用一个不同的命名系统来解决这个问题。

如何从Java中的匿名内部类获取对封装类的引用?

我目前在外部类创build一个明确的引用,这样我有一个名字来引用匿名内部类。 有一个更好的方法吗?