Kotlin实现在类里面创建main函数
作者:嫩嫩的猿 发布时间:2022-08-26 20:11:13
标签:Kotlin,类,main
1、创建在class块外面:
class Test{
}
/** 我是main入口函数 **/
fun main(args: Array<String>) {
var test=Test();
}
这样是一种方式,但是细心的童鞋可能会发现一个问题,目录里面的文件图标是灰色的,而且这种写法看上去怪怪的,有强迫症的可能会接受不了;
2、创建在class里面:
class Test{
companion object {
/** 我是main入口函数 **/
@JvmStatic
fun main(args: Array<String>) {
var test=Test();
}
}
}
这样就可以把main入口函数创建在class里面了,我们来分解一下为什么要这么写;
首先:
companion object { //我是静态块
/**
这里面定义的静态变量跟静态方法,类似java的:static
**/
}
上面的方法就是kotlin定义静态变量跟静态方法的方式,我们知道java的main函数是一个静态方法:
public static void main(String[] args){
}
那在kotlin里面我们换个思路,既然main是静态方法,那么把它放在kotlin的 companion object { }里面试试,果然,成功过了,而且这样写看上去也不怎么变扭,目录图标也变成蓝色的了,可喜可贺!
补充知识:Kotlin的类继承-子类有构造函数
//如果一个类要被继承,可以用open关键字进行修饰
/**
* Kotlin中的类可以有一个主构造器,以及一个或多个构造器,主构造器是
类头部的一部分,位于类名称之后
* class Person constructor(firstName: String) {}
如果主构造器没有任何注解,也没有任何可见度修饰符,那么constructor关键字可以省略。
class Person(firstName: String) {
}
*/
open class Personage(val name:String,val age:Int){
}
//如果子类有主构造函数,则基类必须在主构造函数中进行初始化
class Student(name:String,age:Int,var no:String,var score:Int) :Personage(name,age){
}
fun main(args:Array<String>){
val s= Student("Robbin",12,"323",22)
//字符串模板
//$表示一个变量名或者变量值
//$varName表示变量值
//${varName.fun()}表示变量的方法返回值
println("学生姓名: ${s.name}")
}
如果一个类要被继承,可以用open关键字进行修饰
Kotlin中的类可以有一个主构造器,以及一个或多个构造器,主构造器是
类头部的一部分,位于类名称之后
来源:https://blog.csdn.net/qq_19306415/article/details/81902197


猜你喜欢
- 概述在Compose中,图片组件主要有两种,分别是显示图标的Icon组件和显示图片的Image组件,当我们显示一系列的小图标的时候,我们可以
- 本文调用android的媒体播放器实现一些音乐播放操作项目布局:<LinearLayout xmlns:android="h
- 场景在任何一个Form表单的操作页面或者数据台账的查询页面,基本都会看到一个清除的按钮,其功能就是用来清除我们需要抛弃的已经写入到控件内的数
- 利用反射获取对象的所有属性及对应的值1、获取属性名数组private static String[] getFiledName(Object
- 屏幕切换指的是在同一个Activity内屏幕间的切换,ViewFlipper继承了Framelayout类,ViewAnimator类的作用
- 进度条样式在项目中经常可以见到,下面小编给大家分享Android三种方式实现ProgressBar自定义圆形进度条。Android进度条有4
- 一,引入dll1.ServiceStack.Common.dll2.ServiceStack.Interfaces.dll3.Service
- 首先是“饿了么”导航Tab栏悬浮的效果图。大家可以看到上图中的“分类”、“排序”、“筛选”会悬浮在app的顶部,状态随着ScrollView
- 一、Spring Boot 、 Spring MVC 、Spring对比首先你需要明白一件事情:Spring Boot项目目的并不是替换Sp
- Feign远程调用Multipartfile参数今天在写业务代码的时候遇到的问题, 前端请求A服务,能正确把参数给到A服务<参数里面包
- 系统的基本架构 我们假设一个系统System包含Service客户服务中心、Shop网上购物中心和Office网上办公中心三个独立的网站。
- 1.@Value注解@Value注解的源码,如下所示@Target({ElementType.FIELD, ElementType.METH
- locale是通过系统设置的地区和latin输入法语言通过merger出来的,所以在系统地区设置和输入法语言中同时支持才可以在“输入语言设置
- 发现问题原需求,在一个伸缩列表中,自定义LinearLayout继承LinearLayout动态添加布局。然而实现的时候:一共遍历了30条数
- 用Java来实现简单的拼图游戏,供大家参考,具体内容如下首先我们看一下这个拼图小游戏的效果图:创建一个名称为MedleyGame的类,该类继
- Java java.lang.ExceptionInInitializerError 错误如何解决引起 Java.lang.Ex
- 1、@Configuration&@Bean给容器中注册组件@Configuration及@Bean的使用参考如下代码:packag
- 在C#的继承中尝尝会用到相关的修饰词:override和new。这两个修饰符都可以在新的子类中,重写同名的父类方法。
- 单例模式算是设计模式中最容易理解,也是最容易手写代码的模式,但是其中涉及的知识点却一点也不少,所以经常作为面试题来考。一般单例都是五种写法:
- 不久前项目开始了一段时间了,刚开始怀疑是Android Studio中新加入的Instant Run功能引起的,于是重新打release包后