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,更加简洁明了,通过暴露属性方法,而不是通过调用方法的方式来访问内部属性,不仅更加直观,通过也简化了繁琐的代码书写。
相关文章
|
3月前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
58 6
|
3月前
|
存储 Java 数据处理
Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位
【10月更文挑战第16天】Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位。本文通过快速去重和高效查找两个案例,展示了Set如何简化数据处理流程,提升代码效率。使用HashSet可轻松实现数据去重,而contains方法则提供了快速查找的功能,彰显了Set在处理大量数据时的优势。
42 2
|
3月前
|
Java
在Java的世界里,Set只接纳独一无二的元素。
【10月更文挑战第16天】在Java的世界里,Set只接纳独一无二的元素。本文通过拟人化的手法,讲述了重复元素从初次尝试加入Set被拒绝,到经历挣扎、反思,最终通过改变自己,成为独特个体并被Set接纳的全过程。示例代码展示了这一过程的技术实现。
28 1
|
15天前
|
Java Maven Spring
【SpringBug】lombok插件失效,但是没有报错信息,@Data不能生成get和set方法
解决写了@Data注解,但是在测试文件中生成的反编译target文件Us二Info中没有get和set方法
134 15
|
2月前
|
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'.
154 4
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
|
3月前
|
开发框架 Java .NET
C#与Java
在动态且不断发展的软件开发世界中,Java 和 C# 是两个巨头,每个都有自己独特的优势、理念和生态系统。本文深入比较了 Java 和 C#,探讨了它们的历史背景、语言特性、性能指标、跨平台功能等。
108 19
C#与Java
|
2月前
|
存储 算法 Java
Java Set深度解析:为何它能成为“无重复”的代名词?
Java的集合框架中,Set接口以其“无重复”特性著称。本文解析了Set的实现原理,包括HashSet和TreeSet的不同数据结构和算法,以及如何通过示例代码实现最佳实践。选择合适的Set实现类和正确实现自定义对象的hashCode()和equals()方法是关键。
38 4
|
2月前
|
Java
那些与Java Set擦肩而过的重复元素,都经历了什么?
在Java的世界里,Set如同一位浪漫而坚定的恋人,只对独一无二的元素情有独钟。重复元素虽屡遭拒绝,但通过反思和成长,最终变得独特,赢得了Set的认可。示例代码展示了这一过程,揭示了成长与独特性的浪漫故事。
24 4
|
2月前
|
Java 开发者
Java Set:当“重复”遇见它,秒变“独宠”!
在Java编程中,Set接口确保集合中的元素不重复,每个元素都是独一无二的“独宠”。本文介绍了Set的两种常见实现:HashSet和TreeSet。HashSet基于哈希表实现,提供高效的添加、删除和查找操作;TreeSet基于红黑树实现,不仅去重还能对元素进行排序。通过示例代码,展示了这两种集合的具体应用,帮助开发者更好地理解和使用Set。
32 4
|
2月前
|
Java Windows
IDEA不使用lombok,如何快速生成get和set方法
【11月更文挑战第10天】在 IntelliJ IDEA 中生成 `get` 和 `set` 方法有多种方式:通过菜单操作、使用快捷键或自定义模板。菜单操作包括选择“Code”菜单中的“Generate...”,快捷键为“Alt + Insert”。自定义模板可在“File”->“Settings”->“Editor”->“Code Style”->“Java”中设置。批量生成时,可多选变量一次性生成。