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

【Kotlin】Kotlin 面向对象 ( 类 | 成员变量 | 成员方法 | 封装 | 继承 | 多态 )

创建简单类 ( 整型字段 ) II . 创建简单类 ( 整型字段 + 字符串字段 ) III . 类方法定义 IV . 封装 V . 继承 VI . 多态 与 抽象类 I ....创建简单类 ( 整型字段 ) ---- 定义类 : ① 定义类 : 定义类的关键字是 class ; ② 定义字段 : 在类后的括号内 , 使用 var 字段名称:字段类型 可以定义一个字段 ; /**...创建简单类 ( 整型字段 + 字符串字段 ) ---- 定义类 : ① 定义类 : 定义类的关键字是 class ; ② 定义字段 : 在类后的括号内 , 使用 var 字段名称:字段类型 可以定义一个字段...类方法定义 ---- 类方法定义 : 使用 fun 关键字 , 在类中定义方法 , 在该方法中可以访问对象的成员变量 ; /** * 定义学生类 * * 定义字段 : 其含有一个字符串字段 ,...定义抽象类 : 只有抽象类中才能定义抽象方法 ( 与 Java 不同 ) ; /** * 抽象类 : 只有抽象类中才能定义抽象方法 ( 与 Java 不同 ) */ abstract class Human

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

    【Kotlin】Kotlin 类的继承 一 ( 类继承基本方式 | final 关键字 | 子类主构造函数 | 子类次构造函数 )

    子类有主构造函数 : 父类必须在主构造函数中初始化 , 子类的 constructor() 可以省略 ; " : " 后的 Father() 相当于调用了父类的主构造函数 , 将子类的主构造函数委托给父类的主构造函数执行...子类有主构造函数 : 子类需要在主构造函数中定义需要的变量 , 其中的参数 , 可以直接传递给后面委托调用的主构造函数 ; class Son constructor (name : String, age...子类没有主构造函数 : 如果没有主构造函数 , 那么子类必须有次构造函数 , 子类需要在次构造函数中定义需要的变量 , 其中的参数 , 可以直接传递给后面 super ( ) 委托调用的主构造函数 ;...父类构造函数与子类构造函数总结 ---- 子类构造函数最终委托 : 子类的构造函数归根到底都要委托给父类的主构造函数 ; ① 子类主构造函数 : 假如子类有主构造函数 , 该主构造函数肯定要委托父类的主构造函数执行...; ② 子类次构造函数 : 此时子类的次构造函数都要委托子类的主构造函数执行 , 相当于间接委托父类主构造函数执行 ;

    1.3K10

    【Kotlin】类的初始化 ② ( 主构造函数 | 主构造函数定义临时变量 | 主构造函数中定义成员属性 | 次构造函数 | 构造函数默认参数 )

    文章目录 一、主构造函数定义临时变量 二、主构造函数中定义成员属性 三、次构造函数 四、构造函数默认参数 一、主构造函数定义临时变量 ---- 在 Kotlin 类中 , 可以在 类声明 时 在 类名后...定义 " 主构造函数 " ; 在 主构造函数 中 , 可以 定义 成员属性 , 并为 成员属性 提供 初始值 ; 在 主构造函数 中 , 可以定义 临时变量 , 临时变量 一般使用 以下划线为开头 的名称...; 代码示例 : class Hello( // 主构造函数, // 下面的两个参数仅仅用于给成员属性赋值, 只使用一次 // 这种变量称为临时变量, 使用下划线开头...---- 在主构造函数中 定义临时变量 , 格式为 : class 类名(_临时变量名: 临时变量类型){} 在主构造函数中也可以 定义成员属性 , 格式为 : class 类名(var 成员属性名:...类只允许 在定义类时 定义 一个主构造函数 , 在其中可以定义 临时变量 , 也可以定义 属性变量 ; 次构造函数 定义在 Kotlin 内部 , 可以定义 多个 次构造函数 , 每个次构造函数都可以有不同的参数组合

    4.9K20

    java学习之路:14.类的构造方法,静态变量,常量和方法,类的主方法

    2.静态变量,常量与方法 由static关键字修饰的变量,常量与方法被称做静态变量,常量与方法。 静态变量,常量与方法被称为静态成员,静态成员属于类所有。...static int id; //在类中定义静态变量 public static void fun1(){//定义静态方法 //******************* //********...java规定不能将方法体内局部变量声明为static。...3.类的主方法 public static void main(String[] args ) { } 主方法是类的入口点,它定义了程序从何处开始,主方法提供对程序流程的控制,java编译器通过主方法来执行程序...主方法是静态的,所以在主方法中调用其他方法,被调用方法也必须是静态的。 主方法没有参数。 主方法的形参为数组。

    93941

    java内部类----安全问题-----访问外围类的私有变量

    我们知道如果一个变量是私有的,它应该就不希望别人去访问它。 隐秘的访问方法需要拥有包的可见性,所有攻击代码需要与被攻击类放在同一个包中。...当使用了内部类的时候,编译器做了这样一件事: 它在外围类添加了一个静态方法  static boolean access$0(外部类); 内部类方法将调用这个函数 这个是有风险的,因为任何人都可以通过access...$0方法很容易的读取到外围类的私有域 黑客可以使用十六进制编辑器轻松创建一个用虚拟机指令调用这个函数的类文件。...结论就是: 如果内部类访问了私有数据域,就有可能通过附加在外围类所在的包中的其他类访问它们。 请慎用!

    1.5K20

    Java 类和对象,如何定义Java中的类,如何使用Java中的对象,变量

    对象是一个你能够看得到,摸得着的具体实体    如何定义Java中的类:  1.类的重要性:所有Java程序都以类class为组织单元  2.什么是类:类是模子,确定对象将会拥有的特征(属性)和行为(方法...)  3.类的组成:属性和方法  4.定义一个类的步骤:      a.定义类名        b.编写类的属性          c.编写类的方法      public class 类名 {   ...  1.成员变量     在类中定义,用来描述对象将要有什么  2.局部变量      在类的方法中定义,在方法中临时保存数据  成员变量和局部变量的区别  1.作用域不同:        局部变量的作用域仅限于定义他的方法...        成员变量的作用域在整个类内部都是可见的  2.初始值不相同:          Java会给成员变量一个初始值          Java不会给局部变量赋予初始值,必要初始化  3.在同一个方法中...,不允许有同名局部变量;  在不同的方法中,可以有同名局部变量  4.两类变量同名时,局部变量具有更高得优先级(就近原则)

    6.9K00

    WPF如何在子线程或其他类中操控控件

    解决 首先可以说明,这里只要使用Dispatcher类来操作就可以了,使用Involke函数,后者提供一个简单的匿名方法,用于委托主线程更新控件。...例子 我建立有一个类,这一个类中有两个函数,一个是RegistTextbox()用于在调用类时候,将主界面的空间传给它,另一个是AddMessageToTextbox()用于将字符串添加到文本框控件,他们的实现很简单...要访问其他WPF表单中的控件,您必须将该控件声明为公共控件。...Application.Current.Windows中的窗口) { if(window.GetType ()== typeof(Window1)) { (窗口为Window1).textBox1.Text ="我从另一个窗口更改了它..."; } } 实例:C#通过事件跨类调用WPF主窗口中的控件 xaml.cs文件: using System; using System.Timers; using System.Windows

    2K10

    C++从入门到精通——类的定义及类的访问限定符和封装

    成员变量命名规则的建议 成员变量的命名应遵循以下建议: 使用有意义的名称:变量名应该能够清晰地描述其含义和用途。应该避免使用无意义的单词或缩写,以免给其他开发人员带来困惑。...在选择变量名时,应避免使用关键字和内置函数的名称。 使用英文:英文是编程界的通用语言,应尽量使用英文来命名变量,以便其他开发人员可以更容易地理解代码。...访问限定符的默认访问级别取决于类的声明: 默认情况下,类的成员(包括变量和函数)的访问级别为private。 默认情况下,结构体的成员(包括变量和函数)的访问级别为public。...访问限定符说明 public修饰的成员在类外可以直接被访问 protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的) 访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止...对于计算机使用者而言,不用关心内部核心部件,比如主板上线路是如何布局的,CPU内部是如何设计的等,用户只需要知道,怎么开机、怎么通过键盘和鼠标与计算机进行交互即可。

    30410

    C++自定义类的对象对于其私有变量的访问

    “在C++的类的作用域内,可以对其私有成员变量进行操作” 以下语法规则是不言自明的: 在自定义类A的成员函数中,可以对该类的私有成员变量进行赋值等操作,但是在类定义之外所声明的A类的对象aobj是不可以直接访问...A类的私有变量的,只有通过在A类的成员函数中开放访问其私有变量的接口,对象aobj才可以对私有变量进行操作。...{ A temobject; //定义A类的临时对象 temobject.m_para = 1; //对临时对象的私有成员变量进行赋值 } 这样的写法是可以正确运行的,只是过了一段时间重读代码的时候产生了疑问...这个看似不是问题的问题困扰了我几天,最后对这一问题的解答也就是开篇的第一句话———— 在C++的类的作用域内,可以对其私有成员变量进行操作 关键就在于对“类作用域”的理解。...由于我在A类的成员函数中定义的是A类的临时对象,因此仍在其作用域内,所定义的临时对象也就可以直接访问其私有成员变量了。

    1.5K10

    【Python】面向对象 - 封装 ② ( 访问私有成员 | 对象无法访问私有变量 方法 | 类内部访问私有成员 )

    一、访问私有成员 1、对象无法访问私有变量 在下面的 Python 类 Student 中 , 定义了私有的成员变量 , # 定义私有成员 __address = None 该私有成员变量..., 只能在类内部进行访问 , 类的外部无法进行访问 ; 在 类外部 创建的 Student 实例对象 , 是无法访问 __address 私有成员的 ; 使用 实例对象 访问 类的私有成员 , 编译时不会报错...__address) 访问 s1 实例对象 的 __address 成员 , 会报如下错误 ; 代码示例 : """ 面向对象 - 封装 """ # 定义 Python 类 class Student...Tom 18 Process finished with exit code 1 2、对象无法访问私有方法 在类中 定义私有成员方法 # 定义私有成员方法 def __say(self...在 Student 类中 , 定义了 私有成员变量 和 私有成员方法 : # 定义私有成员 __address = None # 定义私有成员方法 def __say

    28320

    Android:关于Kotlin的入门语法指南(类、变量 & 函数)都总结在这里了!

    今天,carson将主要详细讲解Kotlin的基本语法,主要包括: 基本观念(对比于Java) 数据类型 类 变量 & 常量 函数 其他语法糖(控制流、类型检查 & 转换、安全性等) ---- 1....补充说明:每种数据类型使用对应方法,可将其他类型转换成其他数据类型 toByte():Byte toShort():Short toInt():Int toLong():Long toFloat():.../ 将字符类型转换成数字 val ch :Char = '8'; val a :Int = ch.toInt() 2.3 字符串(Strings) 表示方式:String 特点:不可变 使用:通过索引访问的字符串中的字符...其他语法糖 关于Kotlin的一些实用语法糖,主要包括: 控制流(if、when、for、 while) 范围使用(in、downTo、step、until) 类型检查 & 转换(is、智能转换、as)...---- 总结 本文全面介绍了Kotlin的入门基本语法,包括类、数据类型、变量 & 函数等。 接下来推出的文章,我将继续讲解Kotlin的相关知识,包括使用、语法特点等。 ----

    1.6K30

    【Kotlin】Kotlin 类的继承 二 ( 属性覆盖 | 属性覆盖的四种情况 | 常量 变量 属性覆盖 | 子类初始化与属性覆盖 )

    覆盖属性声明在子类主构造函数中 : 可以将子类中覆盖的父类属性声明在主构造函数中 , 如下示例 : open class Father { open var age : Int = 60 }...父类常量可以被子类重写成变量 override var age : Int = 18 } 2 ....变量覆盖 : 父类中的 var 属性可以被子类中的 var 属性覆盖 , 不能被 val 属性覆盖 ; ① 代码示例 ( 正确 ) : open class Father { open var...age : Int = 60 } class Son : Father() { //父类变量 只能 被子类重写成变量 , 不能被重写成常量 override var age : Int...父类初始化流程 : ① 父类构造函数 : 先调用主构造函数 / 次构造函数 ; ② 父类初始化 : 然后调用父类属性构造器 和 init 初始化代码块 , 这两个模块优先级相同 , 根据其代码顺序从上到下执行

    1.2K20
    领券