C#和JAVA GET,SET對比


使用GET,SET方法的好處:
隱藏內部成員,但又想外部能夠以某
種正確的方式來訪問和修改內部成員的屬性,
因此通過構造GET,SET訪問器來控制訪問成員,確保數據的一致,完整和正確性。
 
下面分析JAVA和C#寫法
 
JAVA寫法:通過定義GET,SET方法來訪問內部屬性,達到控制訪問的目的。
命名規范:所有成員變量,最好以小寫字母開頭。GET,SET訪問器(方法)的對應屬性值則以大寫字母開頭。
public class Dog {
    private int age;
    private String name;

    public int getAge()
{
this.age;
}

    // SET方法
    public void setAge(int age) {
        // 這世界有超過30歲的狗嗎?
        if (age <= 30) {
            this.age = age;
        }
    }

    public String getName() {
        // 后綴標識這是一只狗
        return this.name + "(Dog)";
    }

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

    public static void main(String[] args) {
        Dog dog = new Dog();
        // 輸入錯誤的年齡
        dog.setAge(40);
        dog.setName("honey");
        System.out.println(dog.getName() + ",年齡:" + dog.getAge());
        // 輸入正確的信息
        dog.setAge(4);
        dog.setName("baby");
        System.out.println(dog.getName() + ",年齡:" + dog.getAge());
    }
}
C#寫法
C#單獨定義了GET,SET訪問器的書寫方法,通過暴露的成員“屬性”,來達到控制訪問。
命名規范:成員變量,以下划線作為前綴,可省去this,避免覆蓋,對於屬性則以大寫字母開頭。
public class Dog
{
    private int _age;
    private String _name;
    public int Age
    {
        get
        {
            return _age;
        }
        set
        {
            if (value <= 30)
            {
                _age = value;
            }
        }
    }
    public String Name
    {
        get
        {
            return _name + "(Dog)";
        }
        set
        {
            _name = value;
        }
    }

  static void Main(String[] args)
        {
            Dog dog = new Dog();
            //輸入錯誤的年齡
            dog.Age = 40;
            dog.Name = "honey";
            Console.WriteLine(dog.Name + ",年齡:" + dog.Age + "\n");
            //輸入正確的信息
            dog.Age = 4;
            
            dog.Name = "baby";
            Console.WriteLine(dog.Name + ",年齡:" + dog.Age + "\n");
            Console.ReadLine();
        }
  


}

C#的寫法:相比JAVA,更加簡潔明了,通過暴露屬性方法,而不是通過調用方法的方式來訪問內部屬性,不僅更加直觀,通過也簡化了繁瑣的代碼書寫。
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM