2016-07-04 22 views
0

in C# setzen Sie eine Instanz einer Klasse erstellen und die Werte der Variablen zur gleichen Zeit eingestellt:Instanz einer Klasse erstellen und Variablen

public class Object 
{ 
    public virtual long Id { get; set; } 
    public string Name { get; set; } 
    public string Description { get; set; } 
    public int Version { get; set; } 
    public long ParentId { get; set; } 
} 

public class Start 
{ 
    Object object= new Object() 
    { 
     Id = 1, 
     Name = name, 
     ParentId = parentId, 
     Description = null, 
     Version= 2 
    }; 
} 

Ist das möglich in Java als gut und wie?

Antwort

2

Die Standardmethode für Werte einstellen, wenn eine Instanz zu schaffen hat, ist nur einen Konstruktor:

class ExampleObject { 
    long id; 
    String name; 
    String description; 
    int version; 
    long parentId; 

    public ExampleObject(final long id, final String name, final String description, final int version, final long parentId) { 
     this.id = id; 
     this.name = name; 
     this.description = description; 
     this.version = version; 
     this.parentId = parentId; 
    } 
} 

Und es dann gerne nennen:

ExampleObject exampleObject = new ExampleObject(1, name, null, 2, parentId); 

Es ist möglich, eine ähnliche Syntax zu verwenden was Sie gezeigt haben, aber es hat einige Nachteile, über die Sie nachforschen sollten, bevor Sie es verwenden (und Sie können auch Variablen mit diesem nicht verwenden):

Mit diesem Befehl wird eine anonyme Klasse mit einem statischen Initialisierungsblock erstellt. Eine statische initialiser Block wie folgt aussieht:

class ExampleObject { 
    long id; 
    String name; 
    String description; 
    int version; 
    long parentId; 

    { 
     id = 1; 
     name = ""; 
     parentId = 2; 
     description = null; 
     version = 2; 
    } 
} 
1

Sie können einen Konstruktor erstellen, die Werte für alle Felder akzeptiert. Auf diese Weise können Sie eine neue Instanz des Objekts erstellen und die Werte legen Sie zugleich wollen:

public class MyClass { 
    public long id; 
    public String name; 
    public String description; 
    public int version; 
    public long parentId; 

    /** Constructor **/ 
    public MyClass(long id, String name, String description, int version, long parentId) { 
    this.id = id; 
    this.name = name; 
    this.description = description; 
    this.version = version; 
    this.parentId = parentId; 
    } 
} 

public static void main(String args[]) { 
    MyClass myClass = new MyClass(1, "name", "description", 1, 1); 
} 

By the way, ist es nicht zu empfehlen (obwohl Sie können) eine Klasse Object in Java zu nennen, da Java auch eine Klasse mit dem gleichen Namen hat und alle Java-Klassen davon ausgehen (kann zu Verwirrung führen).

0
   public class Object 
       { 
       public long id; 
       public String name; 
       public String description; 
       public int version; 
       public long parentId; 

        public Object(long Id,string Name,string Description,int    Version,long Parent_Id) 
       { 

       this.Id =Id ; 
       this.Name =Name ; 
        this.Description =Description ; 
       this.Version =Version ; 
       } 
Verwandte Themen