dart 学习 区分好setter,getter和一般的函数

news2025/1/19 14:20:49

看看代码可以很好的分析 setter ,getter 和普通的函数有什么区别

void main() {
  car a = new car("奔驰", 12);
  print(a.name);
  a.age = 100;
  print(a.age);
  a.setname = "宝马"; // 调用 setter
  print(a.getage); // 调用getter

  a.setter("雷克萨斯");
  a.getter();
}

class car {
  String name;
  int age;
  car(this.name, this.age);
  // 这是一个setter
  void set setname(String name) {
    // 这个 void 可以省略
    this.name = name;
  }

  //这个是一个getter
  int get getage => this.age;
  // 这是一个函数
  void setter(String name) {
    this.name = name;
  }

  int getter() {
    return this.age;
  }
}

这段代码展示了在Dart语言中,setter、getter和普通函数之间的区别。

  1. Setter:
    Setter是一个特殊的方法,用于设置类的私有变量值。在给定的代码中,set setname(String name) 是一个setter,它允许外部代码修改name变量的值。在setter方法内部,this.name = name;这行代码实际上就是修改了类的私有变量name的值。

注意:setter的命名规则是 set + 变量名。在setter方法中,第一个参数就是你要设置的变量的名字。
2. Getter:
Getter是一个特殊的方法,用于获取类的私有变量的值。在给定的代码中,int get getage => this.age; 是一个getter,它允许外部代码获取age变量的值。与setter不同,getter方法没有参数。getter方法的命名规则是 get + 变量名。在getter方法中,你可以直接返回私有变量的值。
3. 普通函数:
普通函数用于执行某些操作,而不是直接访问或修改类的私有变量。在给定的代码中,void setter(String name) 和 int getter() 是普通函数。它们可以接受参数(setter)或返回值(getter)。这些函数并不直接与类的私有变量交互,而是执行一些其他的操作。

总之,setter、getter和普通函数的主要区别在于它们的用途和如何与类的私有变量交互。Setter和getter用于直接访问和修改私有变量,而普通函数则用于执行其他操作。

也就是说如果 name 和 age 变成私有变量的话,使用 setter 和 getter 更加合适

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1357728.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React Hooks中useState的介绍,并封装为useSetState函数的使用

useState 允许我们定义状态变量,并确保当这些状态变量的值发生变化时,页面会重新渲染。 useState 返回值 const [state, setState] useState(initialState);useState 返回一个长度为 2 的数组。通常,我们这样定义状态变量: co…

经纬度的作用

当我们在手机上使用导航软件或者在网上查找地址时,经常会发现一个选项,就是显示当前位置的经纬度。那么,什么是经纬度,它有什么作用呢? 经纬度是用来确定地球上任何一个点位置的坐标系统。它由两个数值组成&#xff0…

华为DriveONE电机控制器拆解实拍

如果说之前的问界M5、M7,华为让我们看到其在智能化上确实拥有遥遥领先的能力,那么在智界S7上,则让我们看到华为在动力、底盘这些硬件执行层面,竟然也有不输给很多车企的实力。1、华为电驱,全球第一?在智界S…

手游开发项目经验简单总结

这是我最近一个完整的手游开发项目的总结信息,请大家指点 目录 引擎 语言 编辑器 项目开发模块规划分 主项目工程,UI资源项目工程,模型场景资源项目工程 热更框架 前后端协议 UI 图集 多语言适配 SLG场景和其他场景 战斗 美术模型资源 人物…

Glide加载不出图片与请求浏览器资源时中文转码问题

报错代码如图:Image load failed: Failed to load resourse 首先确保你的图片 URL 地址是正确的,可以通过在浏览器中直接访问这个 URL 来测试。另外,确保 URL 地址不包含特殊字符或空格,以免影响加载。 然后确定依赖库没有问题&am…

支持下载和阅读的漫画管理工具Teemii

什么是 Teemii ? Teemii 是一款专为狂热漫画读者设计的精简 Web 应用程序。它为阅读和管理漫画集提供了一个简单而高效的平台。主要功能包括跨平台访问、浏览器内阅读、强大的元数据聚合器以及馆藏自动更新。Teemii 是专为那些寻求更加个性化和自主的方法来管理漫画…

学习汽车LIN总线该如何入门?

关注菲益科公众号—>对话窗口发送 “CANoe ”或“INCA”,即可获得canoe入门到精通电子书和INCA软件安装包(不带授权码)下载地址。 目录 1. 车载LIN总线诞生背景和使用场景 2. LIN总线硬件接口 3. Lin总线协议 4. 总结 1、车载LIN总线…

VSCode远程开发配置和SSH免密登录

目录 概要远程开发插件安装开始连接SSH免密登录开发环境配置 概要 现在很多公司都是直接远程到服务器上写代码,使用远程开发,可以在与生产环境相同的环境中开发、测试和部署代码,减少因环境不同而导致的问题。本文将详细介绍如何通过VSCode连…

(02)半导体前道制程工艺概览

01、半导体制程工艺概览 在第一篇的最后,我们说到金属氧化物半导体场效应晶体管(MOSFET)的平面式结构让人们可以在晶圆上同时制造出好几个MOSFET。且与第一代晶体管BJT不同,MOSFET无需焊接过程。本期内容就让我们来详细了解一下具体的制程工艺。 为方便讲解,我们先来看一…

电脑报错“KBDRU.DLL文件丢失,软件无法启动”,KBDRU.DLL文件下载,修复方法

很多用户在日常使用电脑的时候,或多或少都遇到过,在启动游戏或软件的时候,Windows桌面会弹出错误提示框“KBDSN1.DLL文件缺失,造成软件无法启动或运行,请尝试重新安装解决”。 不少用户,会根据提示重装游戏…

Spark四:Spark Streaming和Structured Streaming

简介 Spark Streaming整体流程和DStream介绍 Structured Streaming发展历史和Dataflow模型介绍 Spark Streaming 是一个基于 Spark Core 之上的实时计算框架,从很多数据源消费数据并对数据进行实时的处理,具有高吞吐量和容错能力强等特点。 Spark Stre…

年终护眼台灯哪个好用?适合学生备考的台灯推荐

最近临近寒假,就有好多家长们和高校学子们催我推荐护眼台灯,人眼对光是非常敏感的,特别是儿童青少年眼睛还在发育的状态来说,光线是至关重要的,于是这次选择的护眼台灯我都是经过亲自使用测试的。 但由于现在护眼台灯…

【Java 进阶篇】Linux 常用命令使用详解:玩转命令行的魔法世界

在计算机的世界里,Linux是一个强大而富有魅力的操作系统。对于很多小白用户来说,刚接触Linux时可能感觉有些陌生,尤其是在命令行界面下。然而,正是这个看似晦涩的命令行,才是Linux系统最为强大和灵活的地方。本文将围绕…

ubuntu桥接方式上网

vmvare:VMware Workstation 17 Pro ubuntu: Ubuntu 14.04.6 LTS window10 下面是我的电脑配置 下面是ubuntu虚拟机的配置 vi /etc/network/interfaces 下面的gateway就是window -ipconfig 截图里的默认网关 auto lo iface lo inet loopbackauto eth0 iface eth0 inet stat…

Vue CLI初识

脚手架Vue CLI 基本介绍 Vue CLI 是Vue官方提供的一个全局命令工具 可以帮助我们快速创建一个开发Vue项目的标准化基础架子。【集成了webpack配置】 好处 开箱即用,零配置内置babel等工具标准化的webpack配置 使用步骤 全局安装(只需安装一次即可…

APP上线前需要通过哪些测试?如何获取专业的APP测试报告

互联网信息时代,人们最离不开的就是手机,而手机里面吸引我们的也就是APP软件里各式各样好玩的。但一款APP要想在竞争激烈的市场上留存下来,上线前的软件测试就必不可少,那么APP上线前需要通过哪些测试呢?又该如何获取专业的APP测…

Lumerical------创建一个 90 度弯曲波导

Lumerical------创建一个 90 度弯曲波导 引言正文方法1------自定义90度弯曲波导方法2------使用内置集成好的90度弯曲结构引言 90 度弯曲波导在 PIC 中非常常见,如何在 Lumerical 中创建类似的结构呢?这里我们特来说明一下。 正文 方法1------自定义90度弯曲波导 在 Str…

【常用排序算法】快速排序

##快速排序 快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法 先从数列中取出一个数作为基准数pivot。分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放…

AI绘图模型不会写字的难题解决了

介绍 大家好,最近有个开源项目比较有意思,解决了图像中不支持带有中文的问题。 https://github.com/tyxsspa/AnyText。 为什么不能带有中文? 数据集局限 Stable Diffusion的训练数据集以英文数据为主,没有大量包含其他语言文本的…

做个很小众的应用就可以月入数万,为什么多数程序员都不做个人开发?

开发一款程序并不是难题,难题是,你开发出来后要怎么进行推广? 说个扎心的事实,我最开始以为是学会了代码开发就可以自己去开发程序赚钱,后面才发现,那只不过是我的一厢情愿罢了。 最近明白了一个道理&…