美文网首页
基本类型、变量、方法、类

基本类型、变量、方法、类

作者: lqhunter | 来源:发表于2020-08-09 22:04 被阅读0次

一、基本类型

1.数字

Double(64)、Float(32)、Long(64)、Int(32)、Short(16)、Byte(8)

val a = 1 //Int
val b = 3_000_000_000 //Long
val c = 1L //Long
val d: Byte = 1
val pi = 3.14 //Double
val e = 3.1415926f //float

显示转换

//java隐式转换
int c = 1;
double e = c;

//kotlin较小的类型不能隐式转换为较大的类型
val a = 1
val b: Double = a//报错

//显示转化
val b: Double = a.toDouble()

2.字符

Char

//java中字符可以直接当数字使用
int f = 'f';
if (f == 1) {
}
//kotlin不行
val f = 'f'
if (f == 1) {//会报错   
}
//可以显示转换成Int
f.toInt()
3.布尔

Boolean

4.数组
//后面和集合Set Map一起总结
val g: Array<Int> = arrayOf(1, 2, 3)
4.字符串
val name = "jack"

//字符串模板
println("${name}的长度:${name.length}")

二、变量

1.定义一个变量
//java
int a;
String b;

int c = 1;
String d = "dd";

//kotlin
var a: Int = 1
var b = "ss"

//以下错误
var c: String = null
2.延迟初始化
lateinit var c: String
3.var和val
val d = 10
4.空安全设计

有些情况变量无法保证是否为空。

//解除非空的限制,此变量就可以设置为空
var name: String? = null

//解除非空限制,如果初始为非空,后续也可以置空
var name: String? = "aaa"
name = null
var view: View? = null
···
view = findViewById(R.id.image)
//view.setBackgroundColor(0xffffff) //错误
view?.setBackgroundColor(0xffffff) //?会先判空,如果为空,则不执行setBackgroundColor代码

view!!.setBackgroundColor(0xffffff)//告诉编译器不进行非空判断

5.get/set
//定义一个变量,就已经默认自带了get和set方法
var name = "ss"

//相当于
var name = "ss"
    get() {
        return field
    }
    set(value) {
        field = value
    }

//如果需要自定义get/set方法
var name2 = "ss"
    get() {
        return field + "bb"
        //return name2 + "bb" //不可以这样,会报错
    }
    set(value) {
        field = value + "aa"
    }



三、方法

1.方法的声明

fun test(name: String): String {
    ...
}


fun test(name: String, age: Int): Unit {
    ...
}

fun test(name: String, age: Int) {
    ...
}
//有返回值
fun test01(name: String): String {
    return ""
}
//无返回值,Unit相当于void
fun test02(name: String): Unit {
}
//无返回值,Unit省略
fun test03(name: String) {
}
//参数可空
fun test04(name: String?) {
}
2.参数传递
//不可空变量,传入不可空参数里
val name = "11"
test03(name)

//可空变量
val name1: String? = "11"
//test03(name1) //传入不可空参数里,编译器会报错
test04(name1) //传入可空参数里,不会报错

四、类

1.类声明
class demo13 {
}
  • 默认是public
  • 默认是final的,不可以继承。可以用open关键字
2.构造函数

主构造函数

class demo14 constructor() {
}

class demo15 constructor(name : String) {   
}
//省略constructor关键字
class demo15(name: String) {
}

//主构造函数,没有函数体,只用于传参数进行初始化,如果需要初始化代码,可以用init代码块
class demo16 constructor(name: String) {
    init {
        //...
    }
}

次构造函数

//无主构造器的情况
class demo17 {
    constructor(name: String) {
    }
}

//主次共存时,次构造器必须直接或间接调用主构造器
class demo18 constructor(age: Int) {

    val currentAge = age
    lateinit var currentName: String

    constructor(name: String, age: Int) : this(age) {
        currentName = name
    }
}

类的继承
kotlin所有类继承自Any

//demo18可以继承必须用open关键字修饰
class demo19 constructor(age: Int) : demo18(age) {
}

//:不仅表示extend,还可以表示implement
interface Imp {
    fun test()
}
//覆盖方法
class demo20 constructor(age: Int) : demo19(age), Imp {
    override fun test() {
    }
}

抽象类

//定义抽象类
abstract class demo22 {
    abstract fun test()
}
//子类
class demo23: demo22() {
    override fun test() {
    }
}
//实例化
fun test01() {
    val demo23 = demo23()
}
//open不具有遗传性,不能影响到子类,override关键字效果可以影响到子类
open class demo24: demo22() {
    override fun test() {
    }
}
class demo26: demo24() {
    override fun test() {//继承之后,仍然可以重写test方法,如果不允许test重写,可以final修饰
        super.test()
    }
}

相关文章

  • 基本类型、变量、方法、类

    一、基本类型 1.数字 Double(64)、Float(32)、Long(64)、Int(32)、Short(1...

  • Java 关键字 final volatile static

    final关键字 修饰类对象、方法、局部变量、成员变量、基本类型、引用类型上效果都不一样 final修饰的类,不可...

  • Fragment、ViewPager代码剥离为Activity

    一、成员变量 Fragment、ViewPager里的成员变量,分为基本类型、引用类型。基本类型如int,引用类...

  • JavaScript 基础知识详解

    1变量 1.1 变量类型 基本类型:undefined、string、number、boolean、null引用类...

  • Java 变量和基本数据类型

    变量和基本数据类型 变量 ​ 保存数据的存储单位(容器) ​ 声明变量的语法: 类型 变量名称 基本数据类...

  • Android-Smali-入门介绍/基础语法

    一.介绍 二.Smali语法 ①基本数据类型 ②对象 ③数组 ④类字段/变量 ⑤类方法/函数 ⑥条件判断语句(if...

  • kotlin和java语法比较

    对象 类 继承 变量 常量 静态常量 定义方法 重载方法 Java 的写法 Kotlin 的写法 基本数据类型 j...

  • 数据类型

    Java中,变量分为两种:基本类型的变量和引用类型的变量。 基本数据类型(基本数据类型是CPU可以直接进行运算的类...

  • Java == 和 equals的区别

    == 是操作符,equals是方法。 对于基本类型变量来说,只能使用 == ,因为基本类型的变量没有方法。使用==...

  • 第6章 面向对象(下)

    基本类型的包装类final修饰变量 不允许重新赋值方法 子类不能覆盖类 不能派生子类abstract 抽象类:多个...

网友评论

      本文标题:基本类型、变量、方法、类

      本文链接:https://www.haomeiwen.com/subject/kqxcrktx.html