`
音频数据
  • 浏览: 36952 次
文章分类
社区版块
存档分类
最新评论

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,更加简洁明了,通过暴露属性方法,而不是通过调用方法的方式来访问内部属性,不仅更加直观,通过也简化了繁琐的代码书写。

 

C#和JAVA GET,SET对比

分享到:
评论

相关推荐

    C#打表工具(完整源码) 导出JSON和编译JAVA文件

    标题中的"C#打表工具(完整源码) 导出JSON和编译JAVA文件"是一个C#编程项目,它的主要功能是将Excel表格的数据转换成JSON格式的文件,并且能够根据这些数据自动生成Java的实体类代码。这个工具对于那些需要处理大量...

    java and c# java and c#

    - **属性**:Java中,属性的访问通常需要通过`get`和`set`方法,而在C#中,属性更像是直接的数据成员,定义时必须同时包含`get`和`set`,访问时使用点操作符,更加直观。 - **对象索引**:C#允许对象具有索引器,...

    一周学会C# java程序员转.NET必看

    对于从Java转到.NET平台的程序员来说,理解C#的基本概念和语法是非常重要的。以下是一些关键知识点: 1. **总体框架**: C#程序通常以`.cs`文件的形式存在,其中可以包含一个或多个类。类名不一定要与文件名相同,...

    C#和JAVA的区别介绍.pdf

    - 在Java中,属性的访问通常通过getter和setter方法实现,可以只定义一个,但在C#中,属性是内置的,必须同时定义get和set,访问时直接使用`.`号。 2. **对象索引**: - C#支持对象索引,如`public Story this...

    Professional C#, 3rd Edition_AppC_C# for Java Developers.pdf

    本书《Professional C#, 3rd Edition》中的附录C针对的是C#与Java开发者的对比,旨在帮助Java开发者快速过渡到C#。尽管C#与Java在语法上有着极高的相似性,但两者之间仍存在着微妙却重要的差异。本章节将深入探讨...

    C#与JAVA比较.pdf

    C#的属性操作如`foo.size++`和`label.font.bold=true`在Java中可能需要更复杂的语句,如`foo.setSize(foo.getSize()+1)`和`label.getFont().setBold(true)`。 C#的索引器(Indexers)允许开发者像处理数组一样处理...

    C#与Java的区别

    而在C#中,属性是一个完整的特性,定义时必须包含get和set,使用`.`号直接访问,更加简洁。 2. **对象索引(Object Indexing)**: C#支持对象索引器,类似于数组访问,如`public Story this[int index]`,在Java...

    C#与JAVA比较[文].pdf

    1. **属性(Property)**:C#的属性语法更加简洁,提供了get和set访问器,使得属性的读写更加直观。JAVA中通常需要定义getter和setter方法。 2. **索引器(Indexer)**:C#支持索引器,允许像操作数组一样处理对象...

    c#与java的区别.pdf

    而在C#中,属性是真正的内置特性,get和set方法必须一起定义,访问时使用点号"."。 2. **对象索引**: - C#支持对象索引,类似对象数组,可以通过int索引访问。 3. **访问修饰符的默认值**: - 当在C#中不指定...

    C#与Java的比较(一).doc

    需要注意的是,与Java和C++不同,C#要求属性的`get`和`set`方法必须同时存在。 ##### 3.2 对象索引机制(Indexer) 对象索引机制是C#中的另一个独特特性,它允许类的行为像数组一样。通过索引来访问类的成员,使得...

    JAVA与C#相同与区别.pdf

    文档中还提到了Java的“getset”方法对,这是Java中用于封装属性的典型方式,通常会定义get和set方法来访问和修改私有变量。 5. 继承与封装:文档提及了C#中的“internal”关键字和Java中的“protected”,它们都...

    HttpClient模拟get,post请求并发送请求参数(json等)

    它允许开发者模拟GET和POST等HTTP请求,并可以方便地发送JSON等数据作为请求参数。在本文中,我们将深入探讨如何使用HttpClient进行HTTP请求操作,以及如何处理JSON数据。 首先,我们需要引入HttpClient的相关依赖...

    java与C#的区别.pdf

    - C#的属性要求get和set访问器一起定义,而Java则使用getter和setter方法。C#中可以通过`.`直接访问,Java则需调用方法。 4. **对象索引**: - C#支持索引器,允许通过索引访问对象,类似于数组。 5. **访问修饰...

    java与C#的区别 (2).pdf

    1. 属性:C#的属性是真正的属性,定义时必须包含get和set,而Java需要通过get和set方法访问。 2. 对象索引:C#中的对象索引类似于数组,可以通过this[int index]实现。 3. 访问修饰符:C#中默认的访问修饰符是`...

    JAVA&C#调用存储过程代码

    本文将详细讲解如何使用Java和C#这两种广泛使用的编程语言来调用数据库中的存储过程。 首先,让我们了解一下Java中的存储过程调用。在Java中,我们主要依赖于JDBC(Java Database Connectivity)API来与数据库进行...

    java与C#的区别.docx

    1. **对象索引**:在 Java 中,可以通过 `get` 和 `set` 方法访问集合或数组中的对象,而在 C# 中,通过索引器(`this[int index]`)可以直接像数组一样访问类的实例。 2. **程序入口点**:Java 程序的入口点是 `...

    CSharp for Java Developers - Cheat Sheet.pdf_C#_源码

    C#中的属性可以有get和set访问器,用于控制读写操作。 - **构造函数**:C#允许在派生类中调用基类的构造函数,通过`base()`关键字。 3. **泛型** - **泛型类与方法**:C#的泛型与Java的泛型相似,用于创建类型...

    c#与Java面向对象练习经典题.pdf

    3. **封装**:居民、成人和官员类展示了封装的概念,通过属性(属性在C#中是get和set方法的组合,在Java中是getter和setter方法)来控制数据的访问,确保数据的安全性。 4. **静态类和方法**:静态类不能实例化,...

    C#实操控制并发之Lock和Redis分布式锁

    本文将深入探讨C#中如何使用Lock和Redis分布式锁来解决并发问题,以秒杀系统为例进行阐述。 首先,让我们理解什么是并发控制。并发控制是指在多线程环境下确保数据的一致性和完整性,防止多个线程同时访问同一资源...

Global site tag (gtag.js) - Google Analytics