oop 相关问题

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

如何访问对象列表中对象的属性[已关闭]

现在我正在尝试在Python中找到两点之间的距离。这两个点的坐标作为存储在列表中的对象的属性保存。 我需要找到距离

回答 1 投票 0

PYTHON 如何访问对象列表中对象的属性

现在我正在尝试在Python中找到两点之间的距离。这两个点的坐标作为存储在列表中的对象的属性保存。 我需要找到距离

回答 1 投票 0

Java - 如何在对象初始化期间将对象名称分配给字段

有一个类,在其中创建了对象。 初始化这个对象时,如何将这个对象的名称赋给“name”字段呢? 对象的数量可以是任意且不同的...

回答 1 投票 0

我无法在JS中输入另一个类中的方法

从'../database.js'导入客户端; 从 '../util/helper.js' 导入助手; 导出默认类 AuthService { 助手=新的助手(); /** * * @param {string} 电子邮件 * @参数{

回答 1 投票 0

如何在 C++ 类中定义函数数组并在构造函数中初始化它们?

这是我的课: CPU类 { 私人的: typedef uint8_t(CPU::*OpCode)(); 操作码 *op_codes; // 如何定义一个包含 256 个函数指针的数组? uint8_t op_nop(); uint8_t op_lxi(...

回答 1 投票 0

为什么 Java 中的强制类型转换异常是致命的?

根据这篇文章: 与静态类型检查相反,动态类型检查可能会导致程序在运行时由于类型错误而失败。在某些编程语言中,可以

回答 3 投票 0

Dart 泛型类显示方法未为类型“Type”定义

我在抽象类类型 T 上添加了 fromjson 方法,但 dart 显示方法未定义 这是我的代码 我是 dart 和 flutter 的初学者,所以我尝试了 T().fromjson(data) 但不起作用 抽象类

回答 1 投票 0

OOP Java 跳棋游戏

我可以毫无问题地运行程序,但是当我尝试迈出第一步时,出现错误。我尝试添加一些调试语句,并在控制台中得到以下内容: 我已经研究过这个举动...

回答 1 投票 0

带有抽象类的Spring Boot Builder

我有一个名为 Property 的类,它是一个抽象类,具有以下属性: @超级建造者 @塞特 @盖特 公共抽象类属性{ 私有字符串 ID; 私有字符串

回答 1 投票 0

如何在C++类中定义函数数组并在ctor中初始化?

这是我的课: CPU类 { 私人的: typedef uint8_t(CPU::*OpCode)(); 操作码 *op_codes; // 如何定义 256 个函数指针的数组? uint8_t op_nop(); uint8_t op_lxi();

回答 1 投票 0

有没有办法在C++中调用类外部的基函数?

这个问题是类似的,但是是关于从类内部调用函数:如果我重写基类的虚函数,我可以调用它吗? 在这种情况下,您可以指定 Base::functi...

回答 3 投票 0

在java中同时重载和重写父子类,但它不起作用,我不明白为什么

好吧,我创建了两个类parent和child,child扩展了parent,它们都有一个名为print的函数。 然而,子类有两个打印函数,一个是参数化的,另一个不是(

回答 2 投票 0

dart 中的 this 关键字与 $ 运算符结合使用时会返回意外的、奇怪的输出

所以我正在写一个程序供我参考这个关键字的用法。我在类“Example”中声明了一个类变量,假设“x=1”。我在该类中声明了一个方法,“

回答 1 投票 0

维护在编辑器中创建并存储在可编写脚本的对象中的对象之间的关系(引用)

所以我最近发现了Unity中上下文菜单的使用。我有一个带有一堆三角形的网格,每个三角形有 3 个顶点。 我有一个可编写脚本的对象 LevelData [CreateAssetMenu(文件名 = "

回答 1 投票 0

将对象传递给构造函数与从静态实用程序类获取

我不确定如何设计我的Java类,这个问题也与更好的测试有关。 我正在使用静态实用程序类/方法 Utils.getMapper() 在许多地方获取配置的 ObjectMapper...

回答 2 投票 0

在 Laravel 5.6 中重写供应商类无法按预期工作

我正在使用 Laravel 5.6 并尝试覆盖 hyn/multi-tenant 包中的类,但我的覆盖似乎没有生效。我在下面详细说明了我的步骤,我希望...

回答 1 投票 0

在PHP中是否可以反向遍历Traversable类来找到根对象?

如果要扩展一个实现 Traversable 的内置类,是否可以使用 debug_backtrace 获取对根对象的引用? 例如,如果我有 $foo->bar-&...

回答 1 投票 0

public 修饰符会破坏封装属性

我们总是说封装可以保证数据和功能免受外界影响。 因此,它是类的保护性包装,并且可以保存代码以防止未经授权的访问...

回答 3 投票 0

PHP 5.3:当在父类中定义但在子类中缺失时,后期静态绑定不适用于属性

看一下这个示例,并注意指示的输出。 看一下这个示例,并注意指示的输出。 <?php class Mommy { protected static $_data = "Mommy Data"; public static function init( $data ) { static::$_data = $data; } public static function showData() { echo static::$_data . "<br>"; } } class Brother extends Mommy { } class Sister extends Mommy { } Brother::init( "Brother Data" ); Sister::init( "Sister Data" ); Brother::showData(); // Outputs: Sister Data Sister::showData(); // Outputs: Sister Data ?> 我的理解是,使用 static 关键字将引用子类,但显然,只要子类中缺少该关键字,它就会神奇地应用于父类。 (这对于 PHP 来说是一种危险的行为,下面将详细解释。) 我之所以要这样做,是出于以下两点考虑: 我不希望在所有子类中定义所有属性的冗余。 我希望将属性定义为父类中的默认值,并且希望子类定义能够在需要时覆盖这些属性。每当需要默认值时,子类都需要排除属性,这就是为什么我没有在上面的示例中的子类中定义属性。 但是,如果我们想在运行时重写一个属性(通过 init 方法),它将为父类重写它!从那时起,之前初始化的子类(如 Brother 的情况)会意外地在您身上发生变化。 显然,这是由于子类没有自己的静态属性副本(每当子类内部未显式定义该静态属性时),但它不会抛出错误,而是切换 static 的行为来访问父类。因此,是否有某种方法可以让父类动态创建属于子类的属性,而不会出现在子类定义中?这样子类就可以拥有自己的静态属性和静态属性的副本关键字可以正确引用它,并且可以编写它以考虑父属性默认值。 或者还有其他解决方案吗,好、坏还是难看? 它确实引用了正确的类,只是,除非重新声明或引用集被破坏,否则子类中的静态属性与超类中的引用集相同。 所以你必须这样做: class Brother extends Mommy { protected static $_data; } 或: class Brother extends Mommy { } $tmp = null; Brother::$_data =& $tmp; unset($tmp); 我已经尝试了@Artefacto的第二种方法,该方法对OP的评论中所说的内容有效,但它对我不起作用,也许是因为我的情况更复杂,因为我在一个内部使用它父类中使用的特征,以及我使用 WordPress 钩子,这意味着事情将在不同的时间执行。 尝试不同的事情后,我想出了不同的方法。 它可能不适合所有人,因为它需要将属性更改为数组。另一方面,在我看来,它更干净,因为我们不需要使用 get_called_class() 也不需要使用指针。 <?php class Mommy { protected static $_data = array( self::class => "Mommy Data" ); public static function init( $data ) { static::$_data[static::class] = $data; } public static function showData() { echo static::$_data[static::class] . "<br>"; } } class Brother extends Mommy { } class Sister extends Mommy { } Brother::init( "Brother Data" ); Sister::init( "Sister Data" ); Brother::showData(); // Outputs: Brother Data Sister::showData(); // Outputs: Sister Data ?> 请注意,我已使用“Mommy data”初始化了数组,但如果您不需要父类的值,则可以将其初始化为空数组。 我希望这对某人有帮助。我自己花了几个小时努力寻找一种干净的方法来做到这一点,而又不放弃保持我的方法静态。

回答 2 投票 0

在构造函数之外使用接口/逻辑时防止未初始化的属性

到目前为止,我通常在类的构造函数中执行代码逻辑,这确保实例的属性已定义并且无法在无效状态下访问。 最近我...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.