当前位置: 首页 > 面试题库 >

Java是否具有与C#中的属性工作方式相同的“属性”?

涂选
2023-03-14
问题内容

在C#中,您可以使用属性使数据字段可公开访问(允许用户直接访问它),但仍保留对那些直接访问的字段执行数据验证的功能。Java是否有类似的东西?对于实例,假设存在一个具有以下实现的C#类(请参见下文):

public class newInt{

    public newInt(){...}

    public int x{
        get{ return this.x }
        set{ this.x = isValid(value) }
    }
}

private static int isValid(int value){...}

在该类中的此定义允许用户在从数据字段“ x”中检索值并为其分配值时“自然”使用数据字段“ x”。以下是它在main中的用法。

public class Test{

    public static void main(String[] args){

        newInt a = new newInt();
        a.x = 50;

        int b = a.x;
    }
}

问题是… java也可以做到这一点吗?如果是这样,它叫什么?


问题答案:

没有。

这就是Java具有getter / setter的原因。

在C#中,您通常会有类似以下内容:

public class SomeObject
{
    private string _title = "";

    public string Title { get { return _title; } set { _title = value; } }
}

// Or with Auto-Properties
public class SomeObjectAutoProperties
{
    public string Title { get; set; }
}

Java getter / setter等效项为:

public class SomeObject
{
    private String _title = "";

    public string getTitle() { return _title; }

    public void setTitle(String value) { _title = value; }
}


 类似资料:
  • 问题内容: C#属性(我的意思是get和set方法)是一个非常有用的功能。Java是否也具有类似于C#属性的内容。我的意思是我们如何在Java中实现类似以下C#代码的内容: 问题答案: 不,Java没有等效性。它只有访问器和更改器方法,以及getter和setter方法的奇特名称。例如:

  • 问题内容: 我真的没有得到所映射的属性的含义。请告诉我如果不使用它会如何影响。如果您能举个例子,那对我来说将非常有用。 另外,属性mappedBy和反面是否相同? 问题答案: 是的,在注解中由映射与在XML文件中执行相反的功能。 关系中始终有2个实体参与其中。 如果是一对一或一对多或多对一,则密钥将存储在其中一个实体中。将其存储在2个地方没有任何意义。 它必须告诉hibernate状态,键位于关系

  • 假设您有2个包,并且有名为-Test的公共类。 第一个包。测试 第二包测试 它们中的每一个都有实例变量-x。 在第一种情况下-int x=2; 在第二种情况下-int x=3; 我想导入FirstPackage。在第二个包内测试。测试并打印值为2的x。 我的代码: 但是输出是3。如何打印?

  • 问题内容: 我正在用Python编写一个空间交易游戏,并且我决定需要将地图分成较小的块,以减少在任何给定时间在屏幕上绘制时需要考虑的对象数量。 这通过具有一个Sector对象来处理,该对象的定义如下: 然后,生成器代码将75个星标填充在每个扇区中(此刻目前为100个扇区),并保留在stardict中。 但是,在尝试实际运行程序时会出现一些奇怪的错误,并且使用调试器打开它可以说明原因:每个扇区的st

  • 问题内容: 因此,直到最近,我还是故意为自己保留Java n00b,而我的第一次实际接触却引起了轻微的震惊:Java没有C#样式属性! 好吧,我可以接受。但是,我也可以保证已经在一个代码库中看到了Java中的属性获取器/设置器代码,但是我不记得在哪里。那是如何实现的?是否有语言扩展?它与NetBeans有关吗? 问题答案: Java中有一个用于getter和setter的“标准”模式,称为Bean

  • 问题内容: 我是Java 8的新手。我有一个类型为A的自定义对象的列表,其中A如下所示: 我想确定该列表中的所有对象是否都具有相同的名称。我可以通过遍历列表并捕获名称的先前值和当前值来实现。在这种情况下,我发现了如何计算列表中为其属性之一具有相同值的自定义对象的数量。但是,在java 8中,有没有更好的方法使用流? 问题答案: 一种方法是获取第一个列表的名称,然后调用并进行检查。