有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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
    }

共 (2) 个答案

  1. # 1 楼答案

    Java的getter和setter没有C#那么容易使用。在Java中,每个getter和setter都必须显式定义,而不是使用那里的速记

    例如,对于代码“public int ProductId”,除了两个方法(getter和setter)之外,还需要一行定义变量,如下所示:

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

    您需要为每个变量定义类似的变量声明和getter/setter方法

  2. # 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();
    }