导图社区 java的封装,继承和多态
java的封装,继承和多态,主要包含类的多态性、 类的抽象性、类的继承性、 类的封装性、 类和对象等。
编辑于2023-12-29 19:09:08在资料分析中,平均数问题频繁出现,是考试的重点考察内容。该模板全面且系统地梳理了平均数问题的各个考点,为考生构建起清晰的知识体系。现期平均数是基础考点,模板中不仅给出了其公式定义“平均数 = 总数/个数”,还详细列举了常见的考察形式,如直接求平均数、求总数、求个数,同时提供了速算技巧——截位直除,帮助考生快速准确地得出答案。基期平均数的讲解同样细致,明确公式定义后,指出其速算技巧类似于基期比重的计算,让考生能够触类旁通,提高解题效率。两期平均数比较是考生容易出错的地方,模板通过清晰的升降判断规则“a > b 上升,a < b 下降”,帮助考生准确判断平均数的变化趋势,避免失误。平均数增长率和平均数增长量这两个考点也有深入剖析。借助万兴脑图制作的这一思维导图模板,考生可以在备考过程中快速梳理知识点,查漏补缺,加深对平均数问题考点的理解和记忆。在考试时,能够迅速调用相关知识,运用速算技巧,提高答题速度和准确率。它是考生提升资料分析成绩、实现考试突破的得力助手,助力考生在竞争激烈的考试中脱颖而出。
大学计划和规划,大学四年,是人生中一个充满无限可能与挑战的宝贵阶段。为即将或正在经历这一阶段的学子们提供一份详尽而实用的指南,帮助大家从入学之初就树立明确的目标,制定合理的计划,逐步构建起扎实的专业知识体系。
经济学基础(2025中级经济师),涵盖广泛的经济学基础知识,内容结构清晰,分为多个部分或章节,针对考试的重点和难点,进行有针对性的学习和练习,提高解题能力和应试技巧。
社区模板帮助中心,点此进入>>
在资料分析中,平均数问题频繁出现,是考试的重点考察内容。该模板全面且系统地梳理了平均数问题的各个考点,为考生构建起清晰的知识体系。现期平均数是基础考点,模板中不仅给出了其公式定义“平均数 = 总数/个数”,还详细列举了常见的考察形式,如直接求平均数、求总数、求个数,同时提供了速算技巧——截位直除,帮助考生快速准确地得出答案。基期平均数的讲解同样细致,明确公式定义后,指出其速算技巧类似于基期比重的计算,让考生能够触类旁通,提高解题效率。两期平均数比较是考生容易出错的地方,模板通过清晰的升降判断规则“a > b 上升,a < b 下降”,帮助考生准确判断平均数的变化趋势,避免失误。平均数增长率和平均数增长量这两个考点也有深入剖析。借助万兴脑图制作的这一思维导图模板,考生可以在备考过程中快速梳理知识点,查漏补缺,加深对平均数问题考点的理解和记忆。在考试时,能够迅速调用相关知识,运用速算技巧,提高答题速度和准确率。它是考生提升资料分析成绩、实现考试突破的得力助手,助力考生在竞争激烈的考试中脱颖而出。
大学计划和规划,大学四年,是人生中一个充满无限可能与挑战的宝贵阶段。为即将或正在经历这一阶段的学子们提供一份详尽而实用的指南,帮助大家从入学之初就树立明确的目标,制定合理的计划,逐步构建起扎实的专业知识体系。
经济学基础(2025中级经济师),涵盖广泛的经济学基础知识,内容结构清晰,分为多个部分或章节,针对考试的重点和难点,进行有针对性的学习和练习,提高解题能力和应试技巧。
java的封装,继承和多态
类和对象
类
类声明 { 成员变量的声明; 成员方法的声明及实现; }
声明类:[修饰符] class 类<泛型> [extends 父类] [implements 接口列表]
声明成员变量:[修饰符]数据类型 变量[=表达式]{,变量[=表达式]}
成员方法声明:[修饰符]返回值类型 方法([形式参数列表])[throws 异常类列表] { 语句序列; [return[返回值]]; }
重载:一个类中可以有多个同名的成员方法,前提是参数列表不同,称为类的成员方法重载,重载的多个方法为一种功能提供多种实现。重载方法之间必须以不同的参数列表(数据类型、参数个数、参数次序)来区别。
例如,MyDate 类可声明多个重载的set()方法如下: void set(int y,int m, int d) void set(int m, int d) //重载方法,参数个数不同 void set(int d) void set(MyDate date)//重载方法,参数的数据类型不同
对象
对象声明:类 对象
构造实例:对象 = new 类的构造方法([实际参数列表])
引用对象的成员变量和调用成员方法:对象.成员变量 对象.成员方法([实际参数列表])
类的封装性
构造与析构
类的构造方法用于创建类的一个实例并对实例的成员变量进行初始化
一个类可声明多个构造方法对成员变量进行不同需求的初始化,构造方法不需要写返回值类型,因为它返回的就是该类的一个实例。例:MyDate类声明以下构造方法:public MyDate(int year, int month, int day)// 声明构造方法,方法名同类名,初始化成员变量 { set(year, month day);// 调用 set()方法,为成员变量赋值 } 使用new运算符调用指定类的构造方法,实际参数列表必须符合构造方法声明。例如: MyDate d1 = new MyDate(2017,10,1);//创建实例并初始化成员变量
当一个类没有声明构造方法时,Java 自动为该类提供一个无参数的默认构造方法
对象的引用与运算
this引用
访问本类的成员变量和成员方法:this.成员变量,this.成员方法([实际参数列表])
调用本类重载的构造方法:this([实际参数列表])
访问控制
类的访问控制权限
公有和(public)和缺省
类中成员4级访问控制权限及范围
声明set()和get()方法存取对象的属性
例:public void set(int year, int month, int day) //设置日期值 public void set(MyDate date)//设置日期值,重载 public int getYear()//获得年份 public int getMonth()// 获得月份 public int getDay()//获得当月日期
静态成员
定义及访问格式
使用关键字static声明的成员称为静态成员
在类内部,可直接访问静态成员,省略类名。静态成员也可以通过对象引用。注意:①在静态成员方法体中,不能访问实例成员,不能使用this引用。②static不能修饰方法的局部变量。
静态初始化块
在声明时可对静态成员变量赋初值,也可使用static声明静态初始化块,对静态成员变量进行初始化,语法格式如下,其中只能访问类中的静态成员,且不能引发检测性异常,在类加载时执行。 static//静态初始化块,类加载时执行一次 {静态成员变量初始化; }
类的继承性
由继承派生类
继承提供在已有类的基础上创建新类的方式。根据一个已知的类由继承(Inherit)方式创建一个类,使新建的类自动拥有被继承类的全部成员,被继承的类称为父类或超类(Superclass),通过继承产生的新类称为子类(Subclass)或派生类。
使用关键字extends声明一个类继承指定的父类,语法格式如下: [修饰符]class 类<泛型>[extends 父类][implements接口列表]
Java的类是单继承的,一个类只能有一个父类。子类继承了父类成员,还可以定义自己的成员。
继承原则及作用
原则:1.子类继承父类所有的成员变量,包括实例成员变量和静态成员方法;2.子类继承父类除构造方法以外的的成员方法,包括实例成员方法和静态成员方法,包括析构方法;3.子类不能继承父类的构造方法。
Object类:当一个类没有声明父类时,Java默认该类的父类是Object。
子类对父类成员的访问权限
不能访问父类私有成员(private)
子类能够访问父类的公有成员和保护成员
可以访问当前包中父类的缺省权限成员,不能访问其他包父类的缺省权限成员
子类的构造方法
使用super()调用父类构造方法
语法格式如下 super([实际参数列表])
例如:public Student(String name, MyDate birthdate, String speciality)//构造方法 { super(name,birthdate);//调用父类指定参数的构造方法 this.speciality = speciality; }
默认执行super()
当一个类没有声明构造方法时,Java为该类提供默认构造方法,调用super()执行父类无参数的构造方法
Java 为Student 类提供的默认构造方法声明如下: public Student() // Java提供的默认构造方法 {super();//调用父类构造方法Person() }
如果子类构造方法没有调用super()或this(),Java将默认调用super()。
类的多态性
子类声明多态成员
子类声明的成员与父类同名
子类声明的成员变量与父类同名,则隐藏父类的成员变量,变量类型可以不同
子类声明的成员方法与父类同名,有以下两种情况,以参数列表是否相同区别。
如果参数列表相同,则覆盖(Override)父类的成员方法,返回值类型必须与父类方法的返回值类型赋值相容,。覆盖父类方法时,子类方法的访问权限不能小于父类方法的访问权限。
如果参数列表不同,则重载(Overload)父类的成员方法。
super引用
当子类有多态成员时,在子类的实例成员方法中,需要调用父类成员,可使用super 引用
super.成员变量 //当子类隐藏父类成员变量时,引用父类成员变量; super.成员方法([实际参数列表]) //当子类覆盖父类1成员方法时,调用父类成员方法
类型的多态
子类对象即是父类对象
判断一个实例是否属于指定类:new Person() instanceof Person; new Student() instanceof Person
父类对象引用子类实例
例:Person per = new Student(); //赋值相容,子类对象即是父类对象
类的抽象性
抽象类
使用abstract声明的成员方法称为抽象方法
抽象方法只有方法声明没有方法体
例:·public abstract class ClosedFigure // 闭合图形抽象类,public在abstract 之前 { public abstract double area(); //计算面积,抽象方法,以分号”;“结束 }
抽象类不能被实例化,即不能创建抽象类的实例
如果一个类声明继承一个抽象类,它必须实现父类的所有抽象方法,否则该类必须声明为抽象类。
最终类
声明最终类:使用关键字final声明的类称为最终类,无法被继承
例:public final class Math extends Object //数字类,最终类 public final class Circle extends Ellipse //圆类,最终类,不能被继承
声明最终方法:使用final声明的成员方法称为最终方法,无法被子类覆盖
例:public class Square extends Ellipse //非最终类 {public final double area() //最终方法,不能被子类覆盖 }