【02】对象的Getter and Setter
java和C#非常相似,它们大部分的语法是一样的,但尽管如此,也有一些地方是不同的。
为了更好地学习java或C#,有必要分清它们两者到底在哪里不同。
我们这次要来探讨对象的Getter and Setter
java中的实现:
package HelloWorld; public class HelloWorld {
public static void main(String[] args) {
Student stu=new Student();
stu.set_name("李四");
System.out.println(stu.get_name());
} }
class Student{ private String _name;
public String get_name() {
return _name;
} public void set_name(String _name) {
this._name = _name;
} }
C#中的实现(在C#中set和get方法叫做属性):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Student stu = new Student();
stu.Name = "李四";
Console.WriteLine(stu.Name);
Console.ReadKey();
}
} class Student
{
private string _name;
private int age; public string Name
{
get
{
return _name;
} set
{
_name = value;
}
}
}
}
C#还可使用匿名属性(如果的单纯的读写,c#可以直接写成匿名属性),等价于:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Student stu = new Student();
stu.Name = "李四";
Console.WriteLine(stu.Name);
Console.ReadKey();
}
} class Student
{
//private string _name;
public string Name
{
get;set;
}
}
}
分析和总结:
1、在属性的过滤上,不管是java还是c#都可以在set和get的方法里面对操作进行过滤。
2、如果只是单纯做读和写,C#的匿名属性比java的语法更为简洁。
谢谢观看!
【02】对象的Getter and Setter的更多相关文章
- 为什么不需要为Python对象添加 getter 和 setter
Getter 和 setter在java中被广泛使用.一个好的java编程准则为:将所有属性设置为私有的,同时为属性写getter和setter函数以供外部使用. 这样做的好处是属性的具体实现被隐藏, ...
- 对象存取器属性:getter和setter
在一个对象中,操作其中的属性或方法,通常运用最多的就是读(引用)和写了,譬如说o.a,这就是一个读的操作,而o.b = 1则是一个写的操作.事实上在除ie外最新主流浏览器的实现中,任何一个对象的键值都 ...
- 第8章 控制对象的访问(setter、getter、proxy)
目录 1. 使用getter和setter控制属性访问 1.1 定义getter与setter 通过对象字面量定义,或在ES6的class中定义 通过使用内置的Object.definePropert ...
- 寻找性能更优秀的动态 Getter 和 Setter 方案
反射获取 PropertyInfo 可以对对象的属性值进行读取或者写入,但是这样性能不好.所以,我们需要更快的方案. 方案说明 就是用表达式编译一个 Action<TObj,TValue> ...
- 基于 getter 和 setter 撸一个简易的MVVM
Angular 和 Vue 在对Angular的学习中,了解到AngularJS 的两个主要缺点: 对于每一次界面时间,Ajax 或者 timeout,都会进行一个脏检查,而每一次脏检查又会在内部循环 ...
- scala getter and setter
package exp { object Main { def main(args: Array[String]): Unit = { B.name ="Fred"; printl ...
- 由Vue引发的getter和setter思考
公司的新项目决定使用Vue.js来做,当我打印出Vue实例下的data对象里的属性时,发现了一个有趣的事情: 它的每个属性都有两个相对应的get和set方法,我觉的这是多此一举的,于是去网上查了查Vu ...
- 属性声明(property declarations), 自定义属性,自动生成 get 和 set 方法,getter 和 setter
属性声明(property declarations), 自定义属性,自动生成 get 和 set 方法,getter 和 setter 一.普通的get 和set 属性. 一般的get 和set 属 ...
- Vue引发的getter和setter
Vue引发的getter和setter 公司的新项目决定使用Vue.js来做,当我打印出Vue实例下的data对象里的属性时,发现了一个有趣的事情: 它的每个属性都有两个相对应的get和set方法,我 ...
随机推荐
- 什么是Viewport
什么是Viewport 手机浏览器是把页面放在一个虚拟的“窗口”(viewport)中,通常这个虚拟的“窗口”(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机 ...
- SpringBoot整合MybatisPlus3.X之分页插件(四)
注:详细请看2.X博客中,3.X直接上代码. 建议装一个MybatisX插件,可以在Mapper和Xml来回切换 pom.xml <dependencies> <dependency ...
- SpringBoot整合MybatisPlus3.X之Sequence(二)
数据库脚本 DELETE FROM user; INSERT INTO user (id, name, age, email) VALUES (, , 'test1@baomidou.com'), ...
- 知否知否,VS Code 不止开源
VS Code, 昨夜始于“开源”,如今“开源”深处渡. 读者看到这句话,也许会有疑惑,为什么两个“开源”都加上了双引号? 其实是笔者有意为之,因为这个两个“开源”的意义有着很大的差别,第一个“开源” ...
- Ambari 集群时间同步配置教程
本文原始地址:https://sitoi.cn/posts/27560.html 步骤 在时间同步主节点创建 ntp.conf 文件 在时间同步从节点上创建 ntp.conf 文件 修改所有节点时区 ...
- CSPS_104
又被爆踩. 正解写挂. 暴力不会. 只会改题. 还要加油. T1 $nlog^2$是显然的 那么考虑只二分一次,就$nlog$了! 有什么能通过一次二分$O(1)$得到呢? 二分a的位置,$O(1)$ ...
- 机器学习之scikit-learn库
前面讲到了,这个库适合学习,轻量级,所以先学它. 安装就不讲了,简单.不过得先安装numpy和pandas库才能安装scikit-learn库. 如果安装了anaconda得话,会自带有这个库. -- ...
- js中 对象名.属性名和对象名['属性名']的区别,.和[]的区别
对象中的对象名[ ' 属性名 ' ] 和 对象名.属性名的区别 话不多少,上图分析,菜鸟刚学几个月,如有错误,欢迎大佬们指出 这里是很显而易见的! 然后我们用for in 对他进行遍历,他的区别就出来 ...
- 最适合Java开发者的一本书和一软件
一书-<Java编程思想> 一软件-IntelliJ IDEA Java自学是否可以成功,答案显而易见,可以. 自学Java关键看自己是否有毅力.是否有恒心. 自学Java 自学Java不 ...
- Java基础语法01
一.Java入门 Java 是最好的语言吗? 不是,因为在每个领域都有更合适的编程语言. Java技术体系平台 JavaSE//JavaEE//JavaME Java程序的结构 类{ 方法{ 语句; ...