使用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,更加简洁明了,通过暴露属性方法,而不是通过调用方法的方式来访问内部属性,不仅更加直观,通过也简化了繁琐的代码书写。
相关推荐
标题中的"C#打表工具(完整源码) 导出JSON和编译JAVA文件"是一个C#编程项目,它的主要功能是将Excel表格的数据转换成JSON格式的文件,并且能够根据这些数据自动生成Java的实体类代码。这个工具对于那些需要处理大量...
- **属性**:Java中,属性的访问通常需要通过`get`和`set`方法,而在C#中,属性更像是直接的数据成员,定义时必须同时包含`get`和`set`,访问时使用点操作符,更加直观。 - **对象索引**:C#允许对象具有索引器,...
对于从Java转到.NET平台的程序员来说,理解C#的基本概念和语法是非常重要的。以下是一些关键知识点: 1. **总体框架**: C#程序通常以`.cs`文件的形式存在,其中可以包含一个或多个类。类名不一定要与文件名相同,...
- 在Java中,属性的访问通常通过getter和setter方法实现,可以只定义一个,但在C#中,属性是内置的,必须同时定义get和set,访问时直接使用`.`号。 2. **对象索引**: - C#支持对象索引,如`public Story this...
本书《Professional C#, 3rd Edition》中的附录C针对的是C#与Java开发者的对比,旨在帮助Java开发者快速过渡到C#。尽管C#与Java在语法上有着极高的相似性,但两者之间仍存在着微妙却重要的差异。本章节将深入探讨...
C#的属性操作如`foo.size++`和`label.font.bold=true`在Java中可能需要更复杂的语句,如`foo.setSize(foo.getSize()+1)`和`label.getFont().setBold(true)`。 C#的索引器(Indexers)允许开发者像处理数组一样处理...
而在C#中,属性是一个完整的特性,定义时必须包含get和set,使用`.`号直接访问,更加简洁。 2. **对象索引(Object Indexing)**: C#支持对象索引器,类似于数组访问,如`public Story this[int index]`,在Java...
1. **属性(Property)**:C#的属性语法更加简洁,提供了get和set访问器,使得属性的读写更加直观。JAVA中通常需要定义getter和setter方法。 2. **索引器(Indexer)**:C#支持索引器,允许像操作数组一样处理对象...
而在C#中,属性是真正的内置特性,get和set方法必须一起定义,访问时使用点号"."。 2. **对象索引**: - C#支持对象索引,类似对象数组,可以通过int索引访问。 3. **访问修饰符的默认值**: - 当在C#中不指定...
需要注意的是,与Java和C++不同,C#要求属性的`get`和`set`方法必须同时存在。 ##### 3.2 对象索引机制(Indexer) 对象索引机制是C#中的另一个独特特性,它允许类的行为像数组一样。通过索引来访问类的成员,使得...
文档中还提到了Java的“getset”方法对,这是Java中用于封装属性的典型方式,通常会定义get和set方法来访问和修改私有变量。 5. 继承与封装:文档提及了C#中的“internal”关键字和Java中的“protected”,它们都...
它允许开发者模拟GET和POST等HTTP请求,并可以方便地发送JSON等数据作为请求参数。在本文中,我们将深入探讨如何使用HttpClient进行HTTP请求操作,以及如何处理JSON数据。 首先,我们需要引入HttpClient的相关依赖...
- C#的属性要求get和set访问器一起定义,而Java则使用getter和setter方法。C#中可以通过`.`直接访问,Java则需调用方法。 4. **对象索引**: - C#支持索引器,允许通过索引访问对象,类似于数组。 5. **访问修饰...
1. 属性:C#的属性是真正的属性,定义时必须包含get和set,而Java需要通过get和set方法访问。 2. 对象索引:C#中的对象索引类似于数组,可以通过this[int index]实现。 3. 访问修饰符:C#中默认的访问修饰符是`...
本文将详细讲解如何使用Java和C#这两种广泛使用的编程语言来调用数据库中的存储过程。 首先,让我们了解一下Java中的存储过程调用。在Java中,我们主要依赖于JDBC(Java Database Connectivity)API来与数据库进行...
1. **对象索引**:在 Java 中,可以通过 `get` 和 `set` 方法访问集合或数组中的对象,而在 C# 中,通过索引器(`this[int index]`)可以直接像数组一样访问类的实例。 2. **程序入口点**:Java 程序的入口点是 `...
C#中的属性可以有get和set访问器,用于控制读写操作。 - **构造函数**:C#允许在派生类中调用基类的构造函数,通过`base()`关键字。 3. **泛型** - **泛型类与方法**:C#的泛型与Java的泛型相似,用于创建类型...
3. **封装**:居民、成人和官员类展示了封装的概念,通过属性(属性在C#中是get和set方法的组合,在Java中是getter和setter方法)来控制数据的访问,确保数据的安全性。 4. **静态类和方法**:静态类不能实例化,...
本文将深入探讨C#中如何使用Lock和Redis分布式锁来解决并发问题,以秒杀系统为例进行阐述。 首先,让我们理解什么是并发控制。并发控制是指在多线程环境下确保数据的一致性和完整性,防止多个线程同时访问同一资源...