C#和JAVA GET,SET对比

简介: 转自博客:http://www.cnblogs.com/Handos/archive/2012/08/18/2645721.html 使用GET,SET方法的好处: 隐藏内部成员,但又想外部能够以某 种正确的方式来访问和修改内部成员的属性, 因此通过构造GET,SET访问器来控制访问成员,确保数据的一致,完整和正确性。
转自博客:
http://www.cnblogs.com/Handos/archive/2012/08/18/2645721.html

使用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 ) { 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,更加简洁明了,通过暴露属性方法,而不是通过调用方法的方式来访问内部属性,不仅更加直观,通过也简化了繁琐的代码书写。
相关文章
|
5月前
|
存储 缓存 NoSQL
Redis中的常用命令-get&set&keys&exists&expire&ttl&type的详细解析
总的来说,这些Redis命令提供了处理存储在内存中的键值对的便捷方式。通过理解和运用它们,你可以更有效地在Redis中操作数据,使其更好地服务于你的应用。
369 17
|
12月前
|
存储 Java 数据处理
Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位
【10月更文挑战第16天】Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位。本文通过快速去重和高效查找两个案例,展示了Set如何简化数据处理流程,提升代码效率。使用HashSet可轻松实现数据去重,而contains方法则提供了快速查找的功能,彰显了Set在处理大量数据时的优势。
121 2
|
12月前
|
Java
在Java的世界里,Set只接纳独一无二的元素。
【10月更文挑战第16天】在Java的世界里,Set只接纳独一无二的元素。本文通过拟人化的手法,讲述了重复元素从初次尝试加入Set被拒绝,到经历挣扎、反思,最终通过改变自己,成为独特个体并被Set接纳的全过程。示例代码展示了这一过程的技术实现。
77 1
|
11月前
|
存储 Java 开发者
在 Java 中,如何遍历一个 Set 集合?
【10月更文挑战第30天】开发者可以根据具体的需求和代码风格选择合适的遍历方式。增强for循环简洁直观,适用于大多数简单的遍历场景;迭代器则更加灵活,可在遍历过程中进行更多复杂的操作;而Lambda表达式和`forEach`方法则提供了一种更简洁的函数式编程风格的遍历方式。
4297 113
|
11月前
|
存储 Java
判断一个元素是否在 Java 中的 Set 集合中
【10月更文挑战第30天】使用`contains()`方法可以方便快捷地判断一个元素是否在Java中的`Set`集合中,但对于自定义对象,需要注意重写`equals()`方法以确保正确的判断结果,同时根据具体的性能需求选择合适的`Set`实现类。
604 113
|
11月前
|
存储 Java 开发者
Java 中 Set 类型的使用方法
【10月更文挑战第30天】Java中的`Set`类型提供了丰富的操作方法来处理不重复的元素集合,开发者可以根据具体的需求选择合适的`Set`实现类,并灵活运用各种方法来实现对集合的操作和处理。
627 113
|
10月前
|
Java Maven Spring
【SpringBug】lombok插件失效,但是没有报错信息,@Data不能生成get和set方法
解决写了@Data注解,但是在测试文件中生成的反编译target文件Us二Info中没有get和set方法
807 16
|
11月前
|
JSON Java 关系型数据库
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
在Java中,使用mybatis-plus更新实体类对象到mysql,其中一个字段对应数据库中json数据类型,更新时报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
1122 4
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
|
12月前
|
开发框架 Java .NET
C#与Java
在动态且不断发展的软件开发世界中,Java 和 C# 是两个巨头,每个都有自己独特的优势、理念和生态系统。本文深入比较了 Java 和 C#,探讨了它们的历史背景、语言特性、性能指标、跨平台功能等。
350 19
C#与Java