tyr*_*302 18 c# java properties
在C#中,您可以使用属性使数据字段可公开访问(允许用户直接访问它),同时保留在这些直接访问的字段上执行数据验证的功能.Java有类似的东西吗?对于Instance,假设存在一个带有以下实现的C#类(见下文):
public class newInt{
public newInt(){...}
public int x{
get{ return this.x }
set{ this.x = isValid(value) }
}
}
private static int isValid(int value){...}
Run Code Online (Sandbox Code Playgroud)
类中的这个定义允许用户在从中检索值并为其赋值时"自然地"使用数据字段'x'.以下是它将如何在主要使用.
public class Test{
public static void main(String[] args){
newInt a = new newInt();
a.x = 50;
int b = a.x;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是...... java也可以这样做吗?如果是这样,它叫什么?
Jus*_*ner 20
没有.
这就是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; }
}
Run Code Online (Sandbox Code Playgroud)
Java getter/setter等价物将是:
public class SomeObject
{
private String _title = "";
public string getTitle() { return _title; }
public void setTitle(String value) { _title = value; }
}
Run Code Online (Sandbox Code Playgroud)
有 Java 平台,还有 Java 语言。
Java 语言不支持属性(可能永远不会),但您不会被迫使用 Java 语言来使用 Java 平台(就像您不需要坚持使用 C# 来使用 .NET 平台一样)。
查看:
还有许多其他人。
| 归档时间: |
|
| 查看次数: |
5153 次 |
| 最近记录: |