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,更加简洁明了,通过暴露属性方法,而不是通过调用方法的方式来访问内部属性,不仅更加直观,通过也简化了繁琐的代码书写。
相关文章
|
11月前
|
存储 缓存 NoSQL
Redis中的常用命令-get&set&keys&exists&expire&ttl&type的详细解析
总的来说,这些Redis命令提供了处理存储在内存中的键值对的便捷方式。通过理解和运用它们,你可以更有效地在Redis中操作数据,使其更好地服务于你的应用。
569 17
|
Java Maven Spring
【SpringBug】lombok插件失效,但是没有报错信息,@Data不能生成get和set方法
解决写了@Data注解,但是在测试文件中生成的反编译target文件Us二Info中没有get和set方法
1234 16
|
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'.
1602 4
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
|
Java Windows
IDEA不使用lombok,如何快速生成get和set方法
【11月更文挑战第10天】在 IntelliJ IDEA 中生成 `get` 和 `set` 方法有多种方式:通过菜单操作、使用快捷键或自定义模板。菜单操作包括选择“Code”菜单中的“Generate...”,快捷键为“Alt + Insert”。自定义模板可在“File”->“Settings”->“Editor”->“Code Style”->“Java”中设置。批量生成时,可多选变量一次性生成。
3946 2
|
存储 算法 Java
Java Set深度解析:为何它能成为“无重复”的代名词?
Java的集合框架中,Set接口以其“无重复”特性著称。本文解析了Set的实现原理,包括HashSet和TreeSet的不同数据结构和算法,以及如何通过示例代码实现最佳实践。选择合适的Set实现类和正确实现自定义对象的hashCode()和equals()方法是关键。
222 4
|
Java
那些与Java Set擦肩而过的重复元素,都经历了什么?
在Java的世界里,Set如同一位浪漫而坚定的恋人,只对独一无二的元素情有独钟。重复元素虽屡遭拒绝,但通过反思和成长,最终变得独特,赢得了Set的认可。示例代码展示了这一过程,揭示了成长与独特性的浪漫故事。
137 4
|
Java 开发者
Java Set:当“重复”遇见它,秒变“独宠”!
在Java编程中,Set接口确保集合中的元素不重复,每个元素都是独一无二的“独宠”。本文介绍了Set的两种常见实现:HashSet和TreeSet。HashSet基于哈希表实现,提供高效的添加、删除和查找操作;TreeSet基于红黑树实现,不仅去重还能对元素进行排序。通过示例代码,展示了这两种集合的具体应用,帮助开发者更好地理解和使用Set。
171 4
|
存储 算法 Java
为什么Java Set如此“挑剔”,连重复元素都容不下?
在Java的集合框架中,Set是一个独特的接口,它严格要求元素不重复,适用于需要唯一性约束的场景。Set通过内部数据结构(如哈希表或红黑树)和算法(如哈希值和equals()方法)实现这一特性,自动过滤重复元素,简化处理逻辑。示例代码展示了Set如何自动忽略重复元素。
191 1
|
存储 Java 开发者
Java Set:无序之美,不重复之魅!
在Java的集合框架中,Set接口以其“无序之美”和“不重复之魅”受到开发者青睐。Set不包含重复元素,不保证元素顺序,通过元素的hashCode()和equals()方法实现唯一性。示例代码展示了如何使用HashSet添加和遍历元素,体现了Set的高效性和简洁性。
195 4
|
存储 算法 Java
Java中的Set,你真的了解它的“无重复”奥秘吗?
在Java的广阔天地里,Set以其独特的“无重复”特性,在众多数据结构中脱颖而出。本文将揭秘Set的“无重复”奥秘,带你领略其魅力。Set通过哈希算法和equals()方法协同工作,确保元素不重复。通过一个简单的案例,我们将展示HashSet如何实现这一特性。
167 1
下一篇
开通oss服务