Questions tagged «oop»

面向对象的编程是一种使用“对象”的编程范式:由数据字段和方法及其相互作用组成的数据结构。

12
通过字符串获取PHP类属性
如何在基于字符串的PHP中获取属性?我给它打电话magic。那是什么magic呢? $obj->Name = 'something'; $get = $obj->Name; 就像... magic($obj, 'Name', 'something'); $get = magic($obj, 'Name');
139 php  string  oop  properties 

16
您如何在C中实现类?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 12个月前关闭。 改善这个问题 假设我必须使用C(没有C ++或面向对象的编译器)并且没有动态内存分配,那么我可以使用哪些技术来实现一个类,或者可以很好地近似一个类?将“类”隔离到单独的文件中总是一个好主意吗?假设我们可以通过假设固定数量的实例,甚至在编译之前将对每个对象的引用定义为常量来预分配内存。随意假设我需要实现哪种OOP概念(它会有所不同),并为每种概念提供最佳方法。 限制条件: 我必须使用C而不是OOP,因为我正在为嵌入式系统编写代码,并且编译器和预先存在的代码库都在C中。 没有动态内存分配,因为我们没有足够的内存来合理地假设如果我们开始动态分配它就不会用光。 我们使用的编译器在函数指针方面没有问题
139 c  class  oop  embedded 

6
是否可以在PHP中创建静态类(例如在C#中)?
我想在PHP中创建一个静态类,并使其行为像在C#中一样,所以 构造函数在第一次调用该类时自动被调用 无需实例化 这种东西... static class Hello { private static $greeting = 'Hello'; private __construct() { $greeting .= ' There!'; } public static greet(){ echo $greeting; } } Hello::greet(); // Hello There!

11
是否存在用PHP访问数据库的单例的用例?
我通过PDO访问我的MySQL数据库。我正在设置对数据库的访问权限,而我的第一个尝试是使用以下内容: 我想到的第一件事是global: $db = new PDO('mysql:host=127.0.0.1;dbname=toto', 'root', 'pwd'); function some_function() { global $db; $db->query('...'); } 这被认为是不好的做法。稍作搜索后,我得到了Singleton模式,该模式 “适用于需要一个类的单个实例的情况。” 根据手册中的示例,我们应该这样做: class Database { private static $instance, $db; private function __construct(){} static function singleton() { if(!isset(self::$instance)) self::$instance = new __CLASS__; return self:$instance; } function get() { if(!isset(self::$db)) self::$db = new PDO('mysql:host=127.0.0.1;dbname=toto', 'user', 'pwd') …

13
封装还是抽象?
这是封装和抽象的简要定义。 抽象: Java中的抽象过程用于隐藏某些细节,仅显示对象的基本功能。换句话说,它处理对象(接口)的外部视图。我在不同站点上看到的唯一好的示例是接口。 封装形式: 它基本上是关于借助诸如private,public,protected等修饰符隐藏对象的状态。我们仅在需要时才通过public方法公开状态。 我们使用修改器实现象private,public也从侧面走出世界,不过也有抽象概念隐藏不必要的细节 因此,从上面的解释看来,封装是抽象的一部分,或者我们可以说它是抽象的子集。但是为什么当我们只能用抽象来处理封装术语时呢?我相信应该有一些主要的区别将它们区分开,但是网上的大多数材料对两者都说得差不多。 尽管这个问题早些时候也曾在这个论坛上提出过,但是我再次带着特定的疑问再次发布它。一些答复还说抽象是一个概念,封装是实现。但是我不买这个-如果是真的,那么我可以认为提供了这两个不同的概念来使我们感到困惑。 更新:-五年后,我根据这篇文章及其以下答案给出了自己的答案,这就是要点 和封装之间的区别? 封装与抽象的真实世界示例
137 java  oop 

8
代理和装饰器模式之间的差异
您能否给出任何好的解释,Proxy和Decorator有什么区别? 我看到的主要区别是,当我们假设代理使用组合并且装饰器使用聚合时,那么很显然,通过使用多个(一个或多个)装饰器,您可以为预先存在的实例(装饰)修改/添加功能,而代理具有自己的代理类内部实例,并为其添加了一些附加功能(代理行为)的委托。 现在的问题是-不代理创建了聚集仍然是代理还是相当装饰?是否允许(按照GoF模式的定义)创建具有聚合的代理?


7
使用面向对象的分析和设计对电梯建模[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 改善这个问题 在面向对象的设计和分析方面,似乎有一些问题在访谈和课堂上很常用。这就是其中之一;不幸的是,我在大学的OOP教授实际上并没有给出答案,所以我一直在想。 问题如下:设计一组基本的对象/方法,用于模拟电梯组。对象及其属性/方法是什么? 为了争辩,让我们假设我们的建筑物有20层。底层是大厅,而第二层是与停车场相连的(因此,人们将进入或离开位于底层或第二层的建筑物)。有一个供所有楼层使用的电梯排;电梯列中有三个电梯井,每个井轴有一个电梯。 在面向对象的模型中对此建模的正确方法是什么?


7
空参数的方法重载
我添加了三个带有参数的方法: public static void doSomething(Object obj) { System.out.println("Object called"); } public static void doSomething(char[] obj) { System.out.println("Array called"); } public static void doSomething(Integer obj) { System.out.println("Integer called"); } 当我打电话时doSomething(null),编译器将错误作为模棱两可的方法抛出。那么问题是因为Integer和char[]方法还是Integer和Object方法?
133 java  oop  null  overloading 

7
__init __()是否应该调用父类的__init __()?
我在Objective-C中使用过这种结构: - (void)init { if (self = [super init]) { // init class } return self; } Python是否还应该为调用父类的实现__init__? class NewClass(SomeOtherClass): def __init__(self): SomeOtherClass.__init__(self) # init class 对于__new__()和也是正确/错误__del__()吗? 编辑:有一个非常类似的问题:Python中的继承和重写__init__
132 python  oop  superclass 



8
Java:静态类?
我有一个充满实用程序功能的类。实例化它的实例没有语义,但是我仍然想调用它的方法。处理此问题的最佳方法是什么?静态课?抽象?
130 java  class  oop  static  utility 

3
用“&”号启动PHP函数意味着什么?
我正在使用Facebook库,其中包含以下代码: class FacebookRestClient { ... public function &users_hasAppPermission($ext_perm, $uid=null) { return $this->call_method('facebook.users.hasAppPermission', array('ext_perm' => $ext_perm, 'uid' => $uid)); } ... } 函数定义开头的&是什么意思,以及如何使用这样的库(在一个简单的示例中)
129 php  oop 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.