首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Kotlin】类的初始化 ① ( 成员属性 | Kotlin 自动为成员字段生成 getter 和 setter 方法 | 手动设置成员的 getter 和 setter 方法 | 计算属性 )

文章目录 一、Kotlin 自动为成员字段生成 getter 和 setter 方法 二、手动设置成员的 getter 和 setter 方法 三、计算属性 一、Kotlin 自动为成员字段生成 getter...和 setter 方法 ---- 定义 Kotlin 类 , 在 类中 定义成员属性 , 会自动生成 getter 和 setter 方法 ; 在 Kotlin 中定义如下类 , 在其中定义两个字段...结果 如下 : 二、手动设置成员的 getter 和 setter 方法 ---- Kotlin 会为 类中的每个 成员属性 生成一个 field , getter , setter ; field...用于存储 属性数据 , 是由 Kotlin 自动进行定义封装的 , 只有在 getter 和 setter 函数中才能调用 field ; 手动定义 getter 和 setter 方法示例 : class...某个属性 是 通过计算得到的 , 可以 在该属性的 getter 和 setter 方法中进行计算设置或获取结果 , 不使用 field 属性 ; 下面的 age 属性就是通过计算得到的属性值 , 每次获取都是

2.1K20

【 JavaSE 】 类和对象

目录 前言 类和对象初步认知 类和类的实例化 类的实例化 类的成员 字段/属性/成员变量 方法 static 关键字 修饰属性 修饰方法 小总结 封装 private实现封装 getter和setter..., 也能修饰方法 通常情况下我们会把字段设为 private 属性, 但是方法是否需要设为 public, 就需要视具体情形而定 getter和setter方法 定义: 使用 private 来修饰字段就无法直接使用这个字段了...,需要依靠getter和setter方法间接使用 Getter 是获取这个属性,Setter 是修改这个属性 创造getter和setter方法: 在 IDEA 中可以使用 alt + insert...(或者 alt + F12) 快速生成 setter / getter 方法 在 VSCode 中可以使用鼠标右键 菜单 -> 源代码操作 中自动生成 setter / getter 方法 示例...表示当前实例的引用 不是所有的字段都一定要提供 setter / getter 方法, 而是要根据实际情况决定提供哪种方法 构造方法 ---- 对于构造方法我们一直都有用到 new 执行过程: 为对象分配内存空间

46420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    为什么要用Getter和Setter方法,而不是公开属性

    大多数字段的访问都是通过Getter和Setter方法来间接访问,为什么不直接将字段设置为公开属性Public呢?答案在于前者的未来可能性。...我了解到,通过公共访问修饰符,类的一个字段对于任何包都是可访问的,并且使用getter/setter,我实际上正在做相同的事情——使字段私有化,而getter/setter方法是公共的,因此它可以被任何包访问...设置值的惟一方法是通过Setter,通过Getter获得值,所以现在字段只有一个入口和一个出口点,因为Getter和Setter是允许代码块的方法,所以可以对它们进行验证检查!...这同样适用于Getter方法——您可以决定返回实际的引用或克隆它,并将其返回给调用者。 因此,Getter和Setter起到保险丝或断路器的作用,电流必须通过保险丝。...但是,当一个字段没有这样的验证约束时,为什么要麻烦写一个Getter和Setter?我可以简单地公开它。 根据我的理解,问题的症结在于避免使代码变得不必要的复杂。

    2.2K10

    lombok注解笔记

    ,方法体不能带有参数,默认为close @Data 作用 生成所有字段的getter、toString()、hashCode()、equals()、所有非final字段的setter、构造器,相当于设置了...设置为true,直接访问字段,不调用getter exclude:此处列出的任何字段都不会在生成的equals和hashCode中使用。...@Getter 作用 生成getter、写在类上会生成该类下所有字段的getter。...作用 生成Setter 参数 onMethod:在方法上添加中注解,见@Getter#onMethod onParam:在方法的参数上添加注解,见@Getter#onMethod value:访问权限修饰符...链式返回,即setter的返回值为this fluent:为true时,默认设置chain为true,setter的方法名修改为字段名 @Delegate 作用 代理模式,把字段的方法代理给类,默认代理所有方法

    1.4K20

    这些极简的注解你都清楚吗

    public 的,为了覆盖访问级别,请使用显式的@Setter \ @Getter批注对字段或类进行注释。...将完全跳过所有静态字段(不考虑任何生成的方法,并且不会为它们创建setter / getter)。...如果字段为 foo 的话,默认的 setter 返回 setFoo,并且类型是 void ,并且带有一个和该属性相同的字段作为参数,用于为此属性字段进行赋值。...,下面一起来看一下它们的使用说明和示例 @NoArgsConstructor 将会生成无参数的构造函数,如果有final 修饰的字段并且没有为 final 修饰的字段进行初始化的话,那么单纯的使用 @NoArgsConstructor...@NoArgsConstructor 修饰类 @RequiredArgsConstructor 将为每个需要特殊处理的字段生成一个带有1个参数的构造函数。

    1.5K20

    Java Getter和Setter

    以下代码是带有私有变量和几个getter / setter方法的简单类的示例: public class SimpleGetterAndSetter { private int number...当变量由private修饰符隐藏 并且只能通过getter和setter进行访问时,将被封装。...对于对象的自定义类型的集合: 实现clone() 自定义类型的 方法。 对于setter,将克隆的项目从源集合添加到目标集合。 对于getter,创建一个新的Collection,并将其返回。...将原始集合中的克隆项添加到新集合中。 8.为自己的类型实现getter和setter 如果定义对象的自定义类型,则应clone() 为自己的类型实现该 方法。...从getter返回一个克隆的对象。 在设置器中分配一个克隆的对象。 结论 Java 中的 getter 和 setter 看起来很简单,但是如果天真地实现,可能会变得很危险。

    7K11

    Scala专题系列(五):类与对象

    /set 方法 类中的字段自动带有getter/setter方法。...也可以用定制的getter/setter方法替换掉原来的字段的定义,而不必修改使用的客户端——这就是所谓的“统一访问原则”。...} 只带getter属性 如果需要一个只读属性,有getter但没有setter,属性的值在对象构建完成之后就不在改变,则可以使用val字段 class person{ val time =...new Date // 生成一个final字段和一个getter方法,但没有setter } get/set汇总 1:var foo:scala自动生成一个getter和一个setter 2:val foo...:scala自动合成一个getter 3:自己定义foo和foo_=方法 4:自定义foo方法 Bean属性 前面提到Sacla定义的字段提供了getter和setter方法, 当我们将scala字段标注为

    57230

    【SpringBoot-3】Lombok使用详解

    Lomabk通过注解的方式,隐式(即代码中不可见,但编译后可见)实现Getter/Setter、构造器方法、字符串输出的ToString方法和Equals/HashCode方法等,大幅度精简冗长繁琐的代码...Data注解给对象类提供了默认的构造方法、属性的getter/setter方法、equals、canEqual、hashCode、toString方法。...@Setter&@Getter @Setter和@Getter都能提供默认的构造方法,根据注解的位置,作用有所不同,以@Setter为例。...具体效果参看最开始的@Data效果。 @RequiredArgsConstructor 作用于类上,由类中所有带有@NonNull注解或者带有final修饰的成员变量作为参数生成构造方法。...与@Data相比多了全参构造方法,少了默认构造方法、setter方法和canEqual方法。 该注解需要注意的是:会将字段添加上final修饰,个人感觉此处有些失控,不太建议使用。

    1.2K30

    Hibernate框架学习之注解映射实体类

    ,setter方法 } //通过实体类实例向数据表中插入数据 UserInfo userInfo = new UserInfo(); userInfo.setName("single"); List的管理下,当有数据添加进userinfo表的时候,hibernate将拿到该实体类实例的集合属性的值,并连带该实例的id一起插入到新表中。...当然,当我们想要获取一个userinfo实例的时候,hibernate也会为我们查询address表,并注入到userinfo实例的集合属性中,默认的注入模式是懒加载。...组件类的每个属性都被映射到userinfo表中了。当我们通过实体类实例向数据表中插入数据的时候,hibernate会将组件类实例拆分出来的各个属性插入到对应的表字段。...int age; private String address; //省略getter,setter方法 } @Entity @Table(name = "userInfo") public

    3.2K90

    Java 之 Lombok 必知必会

    2.2 @Getter/@Setter 通常我们编写实体类无论多少个字段,都要为其提供 getter 和 setter 方法,如下面的示例类 User.java ?.../@Setter 注解不仅可以使用在类上,还可以使用在字段上,这样就是表示针对该字段自动生成 getter /setter 方法。...@Getter @Setter private String password; 这里该注解使用在类上,还是在字段上的区别就是,如果注解使用在类上,只针对这个类的非静态字段有效。...@NoArgsConstructor 为实体类生成无参的构造器方法 @AllArgsConstructor 为实体类生成除了static修饰的字段之外带有各参数的构造器方法。...类似 @ToString,@EqualsAndHashCode 还可以使用需要作为比较的字段和排除不需要比较的字段,具体用法可以看如下示例: @Getter @Setter @AllArgsConstructor

    89740

    Java GetterSetter “防坑指南”

    当变量被 private 修饰符隐藏并且只能通过 getter 和 setter 访问时,它就被“封装”起来了。.../Setter 的常见错误实现 错误一:实现了 Getter/Setter 方法,但变量不做严格的范围限制 如以下代码片段所示: public String name; // 使用public修饰 public...操作符对其进行访问,从而使 setter 和 getter 无效。这种情况的解决方法很简单,直接使用更加“严格”的访问修饰符,例如 protected 和 private。...将原始集合中的克隆项添加到新集合中。 自定义对象的 Getter/Setter 方法 如果定义对象的自定义类型,则应针对自己的类型实现 clone() 方法。...•从 getter 返回一个克隆的对象。•在 setter 中分配一个克隆的对象。

    1.3K40

    Kotlin 类和对象介绍

    你可以参照java 的final关键字修饰的属性. 实例: class Demo2 { //类名为Demo2 //类里面的 函数,属性,内部类,声明等 添加了?...和setter函数 介绍:通常情况下var定义的类都有默认的geter和setter.如果定义为val标签额属性那么它将没有set函数 我们也可以根据需求,进行重构属性的getter和setter函数...因为getter,和setter之中 不能直接使用lastName 如果我们将方法替换后 实例2: class Person() { var lastName: String = ""...使用field关键字声明. field 关键词只能用于属性的访问器.也就是getter 和setter函数里面 实例3: class Person() { var no: Int = 100...因为内部类会带有一个对外部类的对象的引用.所以内部类是可以直接访问外部类的属性和函数.

    20930

    @Accessors 注解极简教程

    @Accessors 源码 我们打开 @Accessors 的源码可以看到: 1)该注解主要作用是:当属性字段在生成 getter 和 setter 方法时,做一些相关的设置。...2)当它可作用于类上时,修饰类中所有字段,当作用于具体字段时,只对该字段有效。 该字段共有三个属性,分别是 fluent,chain,prefix,下面我们分别来说明下,他的意思分别是什么? 2....2.3 prefix 属性 该属性是一个字符串数组,当该数组有值时,表示忽略字段中对应的前缀,生成对应的 getter 和 setter 方法。...那么,我们在生成的 getter 和 setter 方法如下,它也是带有 xx 和 yy 前缀的。...如果,我们把它的前缀加到 @Accessors 的属性值中,则可以像没有前缀那样,去调用字段的 getter和 setter 方法。

    62230

    Java中 private关键字 详细用法及解释

    Java中 private关键字 详细用法及解释 一、为什么要使用private ​ 出于 安全性考虑,我们在写字段时,尽量考虑采用 封装,这样可以隐藏类的细节,只对外开放接口即可实现对象之间的交互。...二、private关键字的定义 private是 一个访问限定修饰符 可修饰的的范围: 修饰成员变量: 表示当前成员变量只能在当前类中使用 修饰成员方法: 表示当前成员方法只能在当前类中使用...附:访问限定修饰符图表 三、private代码的实例 修饰成员变量时: class Person { private String name = "张三"; int age = 18...IDEA,那么可以使用快捷键快速创建 Getter and setter函数 如果点击 Getter and Setter,编译器会自动创建好上述两个方法; 如果只想创建Getter 或 是Setter...方法,只用点击上面的 Getter 或者是 Setter就可以了。

    27910
    领券