Kotlin类对象class初始化与使用
作者:go2coding 发布时间:2023-08-09 22:00:52
只要是面向对象的编程语言,基本上都有类Class
的用法,只是好不好用,好不好记而已,面向对象是c++
开始引入的,但是c++
关于类的东西,弄的太复杂,其实在真正的项目中,很少用到非常多复杂的概念。
Kotlin
是一种追求简洁的语言,在类上也下了不少功夫,放弃了很多c++
中类非常复杂的概念,其实对于类可以这样来理解,为了复用的方便性和完整性,我们把变量和函数组合在一起,形成了类的概念。
类的初始化和使用
Kotlin
中类的定义也是非常的简单的,没有太多的概念需要说明,对于类的定义更多的其实可以参考函数和变量。
class AutoMobile(name:String) {
init {
println(name)
}
fun Driver(){
println("前驱")
}
}
我们用class
定义了一个 AutoMobile
的类,这个类可以接受一个参数 name
,类初始化的时候是从 init
开始的。
对比与c++
的语言,Kotlin
完成一个类是非常简单的,对于需要简单使用类的编程人员,是不需要了解 c++
的构造函数,析构函数,就能完成一个类的编写。
我们可以这样的使用他。
var auto:AutoMobile = AutoMobile("大众")
auto.Driver()
像调用一个函数一样,我们初始化了 auto:AutoMobile
,带了一个name
的参数。也许 c++
顾忌得太多,才是类的用法变得非常的复杂。这里不需要public
的声明,因为默认都是公开的,在写项目的时候,除非有一些特别的函数或者变量不让人知道以后,大部分的情况都是公开的。
我一直都觉得,属性获取方法与设置方法 那是非常奇怪的一种编程方式,每次看到c#
或者 java
代码中,一大堆 getxxxx(),setxxxx()
,觉得都大可不必,这种编程方式只会耗尽程序员的心血,换不回来程序的可读性和稳定性。
继承
就有类有了这个继承的作用,才出现了这么多的设计模式,也可以说,它降低了程序设计的复杂度。但是类的继承,其实用好了,不是那么的简单。
我们定义了一个Car
的类,继承了AutoMobile
class Car(name:String):AutoMobile(name) {
init {
println(name)
}
}
被继承的,也继承了他的参数,这点确实有点意思,可以少写很多代码。AutoMobile代表的是基类,需要在前面声明一个关键字open`。
当然 Kotlin
抽象类,关键字为abstract
和接口关键字为interface
,这里就不做详谈。
小结
面向对象的编程语言,就是有了对象,才是得大工程,大项目的组织方式变得越来越简单,使用好类可以设计出很好的代码框架,当然类的使用看起来简单,真正的要做好,做好框架并不是那么简单的。
来源:https://blog.csdn.net/weixin_40425640/article/details/127846019


猜你喜欢
- 在使用struts多模块的,找到一些小技巧和经验,与大家分享一下。 关于多module的配置就不说了,只需要用不同的config
- 一. 彩信发送: 彩信比短信麻烦很多。从sendMmsWorker函数的参数就可以看出来:(conv, mmsUri, pers
- 1.应用实例需求: 演示 Spring-Boot 通过表单注册用户,并支持上传图片2.代码实现代码实现-文件上传创建 templates/u
- 前言本文主要给大家介绍了关于Spring Boot优化内嵌Tomcat的相关内容,分享出来供大家参考学习,下面话不多说了,来一看看详细的介绍
- 目标效果: 点击动画按钮之后每张牌各自旋转 散开到屏幕上半部分的任意位置之后回到初始位置 比较像LOL男刀的技能动画 : )1: 创建卡牌对
- 用注解实现Mybatis插入数据返回自增的主键Id我们在数据库表设计的时候,一般都会在表中设计一个自增的id作为表的主键。这个id也会关联到
- 背景事情是酱紫的,阿星的上级leader负责记录信息的业务,每日预估数据量是15万左右,所以引入sharding-jdbc做分表。上级lea
- 经典排序算法 - 冒泡排序Bubble sort原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或
- 实现Java编程中倒计时的方法有许多,下面我们通过三个
- 它所表示的是“这部分是无法修改的”。不想被改变的原因有两个:效率、设计。使用到final的有三种情况:数据、方法、类。一、 final数据有
- 【前言】Mybatis 除了 XML 配置写法,还可以使用注解写法。首先需要引入 Mybatis 的依赖:<dependency>
- 下面是我的实现经历:1.首先,我是直接使用AlertDialog来实现,确定是,形状有点难看,而且获得Dialog里面的控件略显麻烦(因为我
- 在C#中,在处理字符串拼接的时候,使用StringBuilder的效率会比硬拼接字符串高很多。到底有多高,如下:static void Ma
- 众所周知Java中的数据类型是强数据类型,基本数据类型之间的转换尤其固定的规则,当数据宽度比较窄的数据类型(如int)转换成数据类型比较宽的
- 本文实例为大家分享了shiro整合springboot前后端分离的具体代码,供大家参考,具体内容如下1、shiro整合springboot的
- Java事件处理机制和适配器最重要的是理解事件源,监视器,处理事件的接口的概念。1.事件源:是能够产生时间的对象都可以叫事件源,比如文本框,
- 本文实例讲述了Android编程实现下载图片及在手机中展示的方法。分享给大家供大家参考,具体如下:在项目开发中从互联网上下载图片是经常用到的
- 本文实例讲述了android实现状态栏添加图标的函数。分享给大家供大家参考。具体如下:private void showNotificati
- 一般来说在Android里要实现树形菜单,都是用ExpandableList(也有高手自己继承ListView或者LinearLayout来
- 1. selectKey标签查询DDLCREATE TABLE `luck_reward_info` ( `id` int NO