Directorio artículo
I. Crear un (campo entero) clase simple
categorías definidas:
① la definición de clase: clase define la palabra clave es la clase ;
② campos definidos: entre paréntesis después de la clase, con el campo var nombre: tipo de campo se puede definir un campo;
/**
* 定义 Rect 类 : 定义类的关键字是 class
*
* 类字段 : 该类对象有两个属性 , 宽 ( width ) 和 高 ( height ) , 类型都是 int
*
*/
class Rect (var width:Int , var height : Int)
/**
* 函数入口
*/
fun main(args:Array<String>){
//创建矩形
var rect = Rect(10, 8);
//使用字符串模板打印 Rect 对象字段
println("Rect width : ${rect.width} , height : ${rect.height}")
}
Los resultados:
Rect width : 10 , height : 8
II. Crear un simple (+ número entero registro de campos de campo)
categorías definidas:
① la definición de clase: clase define la palabra clave es la clase ;
② campos definidos: entre paréntesis después de la clase, con el campo var nombre: tipo de campo se puede definir un campo;
/**
* 定义学生类
*
* 定义字段 : 其含有一个字符串字段 ,
*/
class Student ( var name:String , var age:Int )
fun main(args:Array<String>) {
//创建 Student 对象
var student = Student("Tom", 18)
//使用字符串模板打印 Student 对象字段
println("student name : ${student.name} , age : ${student.age}")
}
Los resultados:
student name : Tom , age : 18
III. El método definido en la clase
definiciones de métodos de clase: Uso de la diversión de palabras clave, que se define en el método de clase, este método puede tener acceso a las variables miembro de un objeto;
/**
* 定义学生类
*
* 定义字段 : 其含有一个字符串字段 ,
*/
class Student ( var name:String , var age:Int ){
fun talk(){
println("Student ${name} is talking")
}
}
fun main(args:Array<String>) {
//创建 Student 对象
var student = Student("Tom", 18)
//使用字符串模板打印 Student 对象字段
println("student name : ${student.name} , age : ${student.age}")
//调用类中的方法
student.talk()
}
Los resultados:
student name : Tom , age : 18
Student Tom is talking
IV. El paquete
efecto del paquete: ocultar los detalles de las propiedades y los métodos implementados dentro del objeto, sólo la interfaz pública abierto al público;
Tales como: El estudiante, el nombre del paquete y los campos de edad, métodos y hablar;
V. La herencia
1 padre :. abierto Palabras clave:
① Abra Herencia: Utilice sólo la palabra clave abierta antes de la clase, la clase está abierto sólo para tener una clase que hereda la clase;
② anulaciones método permitió: permitido método reescritura, única función abierta puede anulado por subclases;
/**
* 定义父类
*
* open 关键字作用 : 打开继承 , 只有打开了该类 , 才能有类继承该类
* 允许方法重写 , 只有 open 的函数 , 才能被子类重写
*/
open class Father {
var familyName:String = "Trump"
fun name(){
println("My family name is ${familyName}")
}
//允许方法被重写
open fun say(){
println("I'm father. family : ${familyName}")
}
}
2 subclases: hereda de clase y overrides métodos;
/**
* 子类代码
*
* 继承 : 使用 冒号 ":" , 表示继承
*/
class Son : Father() {
//重写父类方法
override fun say(){
println("I'm son. family : ${familyName}")
}
}
3. Prueba de la herencia:
/**
* 测试继承
*/
fun main() {
//创建子类对象
var son = Son();
//调用子类对象继承的父类的方法
son.name();
//调用子类对象重写的父类方法
son.say();
}
4. Los resultados:
My family name is Trump
I'm son. family : Trump
VI. El polimorfismo y clases abstractas
1 define una clase abstracta: sólo en la clase abstracta para definir método abstracto (a diferencia de Java);
/**
* 抽象类 : 只有抽象类中才能定义抽象方法 ( 与 Java 不同 )
*/
abstract class Human ( var name:String , var age:Int ) {
/**
* 定义抽象方法 , 类必须是抽象类
*/
abstract fun say();
}
2 para el Tipo 1:
/**
* 定义 Man 类 , 继承抽象类 Human
*/
class Man(name : String, age : Int) : Human(name, age) {
/**
* 实现的 Human 抽象类 的 say 抽象方法
*/
override fun say() {
println("Man : name : ${name} , age : ${age}")
}
}
3 clase de implementación 2:
/**
* 定义 Women 类 , 继承抽象类 Human
*/
class Woman(name : String, age : Int) : Human(name, age) {
/**
* 实现的 Human 抽象类 的 say 抽象方法
*/
override fun say() {
println("Women : name : ${name} , age : ${age}")
}
}
4. polimórfica introdujo: Hombre y mujeres que dicen las llamadas a métodos, diferentes operaciones que se realizan polimorfismo se refleja;
/**
* 测试抽象类与多态
*/
fun main() {
// Man 和 Women 调用 say 方法 , 执行的不同的操作
// 这就是多态
var tom = Man("Tom", 18);
//Man : name : Tom , age : 18
tom.say();
var jerry = Woman("Jerry", 19);
//Women : name : Jerry , age : 19
jerry.say();
}