2011-03-26 65 views
1

我在轉換特別是getter和setter時遇到了麻煩。C#到Java轉換

public class CartItem : IEquatable<CartItem> 
    { 
     #region Attributes 

     public int Quantity { get; set; } 

     private int _productId; 
     public int ProductId 
     { 
      get { return _productId; } 
      set 
      { 
       _product = null; 
       _productId = value; 
      } 
     } 


     private Product _product = null; 
     public Product Prod 
     { 
      get 
      { 
       if (_product == null) 
       { 
        _product = new Product(ProductId); 
       } 
       return _product; 
      } 
     } 
     public string Name 
     { 
      get { return Prod.ProductName; } 
     } 

     public string Description 
     { 
      get { return Prod.Description; } 
     } 

     public float UnitPrice 
     { 
      get { return Prod.UnitPrice; } 
     } 

     public float TotalPrice 
     { 
      get { return UnitPrice * Quantity; } 
     } 

     #endregion 

     #region Methods 
     public CartItem(int productId) 
     { 
      this.ProductId = productId; 
     } 


     public bool Equals(CartItem item) 
     { 
      return item.ProductId == this.ProductId; 
     } 

     #endregion 
    } 
+0

我對我的回答做了小小的更新 – dantuch 2011-03-26 10:07:43

回答

2

在Java的getter和setter的樣本:

public class Employee { 
    private int empId; 
    private String name; 
    private int age; 

    public Employee(int empId, String name, int age) { 
     this.empId = empId; 
     this.name = name; 
     this.age = age; 
    } 

    // getters & setters 

    public int getEmpId() { 
     return empId; 
    } 

    public void setEmpId(int empId) { 
     this.empId = empId; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public int getAge() { 
     return age; 
    } 

    public void setAge(int age) { 
     this.age = age; 
    } 
} 

使用代碼:

public class Sample { 

    private int _productId; 

    public int get_productId() { 
     return _productId; 
    } 

    public void set_productId(int productId) { 
     _productId = productId; 
    } 

    private Product _product = null; 

    public Product get_product() { 
     if (_product == null) { 
      _product = new Product(); 
     } 
     return _product; 
    } 

    public void set_product(Product product) { 
     _product = product; 
    } 

} 

和更多的東西:

public class Product { 

    String desription; 

    public String getDesription() { 
     return desription; 
    } 

    public void setDesription(String desription) { 
     this.desription = desription; 
    } 
} 


//this is your hidding delegation getter only in main class (Sample in my samples) 
public String getDescription(){ 
    return _product.getDesription(); 
} 
2

Java的getter和setter AREN」與C#一樣易於使用。在Java中,每個getter和setter必須被明確定義,而不是使用你在那裏的簡寫。

例如,對於您的代碼「公衆詮釋產品編號」,您需要定義變量行,除了兩個方法(getter和setter)如下:

private int _productId; 
public void setProductId(int anId) 
{ 
    _productId = anId; 
} 

public int getProductId() 
{ 
    return _productId; 
} 

你需要爲每個變量定義類似的變量聲明和getter/setter方法。

+0

「Java獲取器和設置器不像C#那麼容易使用」。 - 使用Java getters和setters有什麼困難?你能說一下這個句子嗎? – ivorykoder 2011-08-02 10:52:13