标签: oop

使用alloc init而不是new

学习Objective-C并阅读示例代码,我注意到对象通常是使用以下方法创建的:

SomeObject *myObject = [[SomeObject alloc] init];
Run Code Online (Sandbox Code Playgroud)

代替:

SomeObject *myObject = [SomeObject new];
Run Code Online (Sandbox Code Playgroud)

是否有理由这样做,因为我已经读到它们是等同的?

oop objective-c

337
推荐指数
5
解决办法
10万
查看次数

329
推荐指数
22
解决办法
38万
查看次数

接口或抽象类:使用哪一个?

请解释我何时应该使用PHP interface以及何时使用PHP abstract class

我如何才能改变自己abstract class的态度interface

php oop abstract-class interface

316
推荐指数
10
解决办法
11万
查看次数

解释Python的'__enter __'和'__exit__'

我在某人的代码中看到了这个.这是什么意思?

    def __enter__(self):
        return self

    def __exit__(self, type, value, tb):
        self.stream.close()
Run Code Online (Sandbox Code Playgroud)
from __future__ import with_statement#for python2.5 

class a(object):
    def __enter__(self):
        print 'sss'
        return 'sss111'
    def __exit__(self ,type, value, traceback):
        print 'ok'
        return False

with a() as s:
    print s


print s
Run Code Online (Sandbox Code Playgroud)

python oop with-statement

314
推荐指数
6
解决办法
21万
查看次数

JavaScript是否具有接口类型(例如Java的"接口")?

我正在学习如何使用JavaScript制作OOP.它是否具有接口概念(例如Java interface)?

所以我可以创建一个监听器......

javascript oop

301
推荐指数
8
解决办法
17万
查看次数

如何在没有foreach的情况下将项目从列表复制到列表?

如何List在不使用的情况下将C#中包含的项目转移到另一个中foreach

c# oop foreach copy list

297
推荐指数
4
解决办法
37万
查看次数

我什么时候应该使用结构而不是类?

MSDN说你应该在需要轻量级对象时使用结构.当结构比类更可取时,还有其他任何情况吗?

有些人可能忘记了:

  1. 结构可以有方法.
  2. 结构不能被继承.

我理解结构和类之间的技术差异,我只是对使用结构没有很好的感觉.

.net oop

295
推荐指数
9
解决办法
7万
查看次数

使用原型的优点,直接在构造函数中定义方法?

我想知道使用这些中的任何一个是否有任何优势,我应该走哪条路?

构造方法:

var Class = function () {

    this.calc = function (a, b) {
        return a + b;
    };

};
Run Code Online (Sandbox Code Playgroud)

原型方法:

var Class = function () {};

Class.prototype.calc = function (a, b) {
    return a + b;
};
Run Code Online (Sandbox Code Playgroud)

我不喜欢这样,使用原型,方法定义与类分开,我不知道是否有任何特定的原因我应该使用它而不是第一种方法.

此外,使用函数文字定义"类"是否有任何好处,而不仅仅是函数定义:

var Class = function () {};
Run Code Online (Sandbox Code Playgroud)

VS

function Class () {};
Run Code Online (Sandbox Code Playgroud)

谢谢!

javascript oop prototype

293
推荐指数
3
解决办法
8万
查看次数

为什么有必要设置原型构造函数?

MDN文章面向对象的Javascript简介中关于继承部分中,我注意到他们设置了prototype.constructor:

// correct the constructor pointer because it points to Person
Student.prototype.constructor = Student;  
Run Code Online (Sandbox Code Playgroud)

这有什么重要意义吗?省略它可以吗?

javascript oop inheritance

284
推荐指数
6
解决办法
5万
查看次数

python中的链调用父构造函数

考虑一下 - 基类A,继承自A的类B,继承自B的类C.什么是在构造函数中调用父类构造函数的通用方法?如果这仍然听起来太模糊,这里有一些代码.

class A(object):
    def __init__(self):
        print "Initialiser A was called"

class B(A):
    def __init__(self):
        super(B,self).__init__()
        print "Initialiser B was called"

class C(B):
    def __init__(self):
        super(C,self).__init__()
        print "Initialiser C was called"

c = C()
Run Code Online (Sandbox Code Playgroud)

这就是我现在这样做的方式.但它仍然看起来有点过于非泛型 - 您仍然必须手动传递正确的类型.

现在,我尝试使用self.__class__作为super()的第一个参数,但是,显然它不起作用 - 如果你把它放在C的构造函数中 - 公平,B的构造函数被调用.如果你在B中做同样的事情,"self"仍然指向一个C的实例,所以你最终再次调用B的构造函数(这以无限递归结束).

现在没有必要考虑钻石继承,我只想解决这个具体问题.

python oop inheritance constructor

279
推荐指数
3
解决办法
16万
查看次数