android学习札记第3章之面向对象二
面向对象学习是一个漫长的过程,不能着急,本章继续学习面向对象的用法,主要内容有this、构造方法间的调用、继承、方法重写Override、super、多态,并用现实实例来说明面向对象。
工具/原料
JDK、eclipse、android SDK、ADT
一、面向对象基础
1、this(每个对象中的一个特殊的引用): 保存当前对象的内存地址,用this可以调用当前对象的成员。如:this.属性、this.方法()。 当前对象:指的是正在调用的对象。
2、构造方法间的调用: 在一个构造方法中,调用另一个重载的构造方法,通常this需要传参,如this(参数……)。 目的:减少代码重复,便于维护和修改。 调用方法:一般从参数少的方法,调用参数多的方法(参数可以集中处理),有参传参,无参传默认值。
3、继承: 作用:避免代码重用(代码复用),父类的代码,在子类中不用重复编写。 单继承:一个子类只能有一个父类,一个父类可以有多个子类。
4、方法重写Override: 从父类继承的方法,不满足子类的需要,可以在子类中重新编写这个方法,要求方法名、参数列表、返回值相同。
5、super: 构造方法中super()激默芡食必须放在首行,执行子类的构造方法时,默认调用父类的无参构造方法;手动调用父类的构造方法使用super(参数列表),子类中手动调用父类的有参构造方法后,只调用父类的有参构造方法,将不执行父类的无参构造方法。子类重写父类的方法时,super()可以不放在首行,它可以调用父类中同一个方法中的代码。
6、多态: 继承关系中,多个子类可以当作父类来处理,可以互相转换。 作用:多种子类型,可以当作一致的类型处理。 类型转换: 向上转型:子类对象转型成父类类型,转为父类型之后只能调用父类定义的通用方法或成员,若想调用子类扩展的成员或方法,需要向下转型。 向下转型:已经转为父类型的子类对象,转回成子类型,需要强制转型。
二、面向对象练习
1、赛车游戏中的汽车: 定义汽车类Car 属性:int id、String brand(弗辞肛胰品牌)、String color(颜色)、int weight(重量) 构造方法:Car()、Car(id,brand)、Car(id,brand,color)、Color(id,brand,color,weight) 方法:go()、shop()、turnLeft()、tureRight()
2、坐标点为Point类,添加一个重载的求距离的方法: 求当前点到参数点之间的距离:public double distance(Point p){}
3、创建“人”类,并让学生、员工类继承“人”类Person: 定义“人”类Person 杨钭维程属性:String name、String gender、int ag髫潋啜缅e 构造方法:无参Person()、全参Person(name,gender,age) 方法:toString():把成员变量连接成字符串 定义“学生”类Student继承Person 属性:String school 定义“员工”类Employee继承Person 属性:String company 编写测试类,新建Person、Student、和Employee的对象,将三个对象,传递到同一个方法中显示。
4、二维点三维点: 编写一个方法,可以接收二维点对象和三维点对象,并显示点坐标和距原点距离。