类和对象.
类:是具有相同属性和方法的一组对象的集合
对象:是类的实例,创建对象:类名,对象名=new类名()
使用对象:对象属性/对象方法名()
类和对象的关系:类是用于描述同一类型的对的一个抽象既念
类中定义了这一类对象所具有的共同属性的方法
初始化:定义成员属性时可以对其初始化则为默认值.
方法:用于定义该类该类实例行为特征和功能的实现.
Return类型:定义时的函数类型、若无返回值需将方法格定为Void.
声明与调用:形参:用于接收外部传入的数据
实参:调用方法时,传方法的数据
形参,实参的类型,数目次序一一对应.
重载(overtoad):一个类可以定义多个方法名相同.但参数不同的方法,实际是同名功能的不同.
需要条件:只有形参的类型、个数、顺序不同.
重写:子类通过重写父类的方法用改变其原有的功能
要点:方法名、形参列表相同.
返日值类型和声明异常类型.子类<=父类.
访问权限.子类>=父类.
构选方法:在对象被创建时自动调用的方法,用于对象的初始化,只能被调用一次
使用的格式:类名.对象=new类名(参数值列表)
要点:通过new关键字调用
构造不能定义返回值类型,无retuen语句
如无手动定义构造器,系统会自到生成无参构造。
方法名和类名必须一致
对象是类的实例
A.创建对系的步骤:分配对象空间,初姓化成员变量
执行属性值的显示初性化
执行构造,
返回对象地址给的相关变量
B:使用:通过变量引用
C.回收:对象没有变量使用,被当作垃圾回收
静态变量和静态函数
静态变量:也叫类变量,独于方法之外的变量,有static修饰
应用:保存跨对象信息,储存对象个数.
静态函数:在普通函数的定义前加关建字Statil.
static关键字
在类中用static声明的成员变量为静态变量.其生命周期与类相同.
该类的公用变量被该类的所有实例共享,在被载入时不会初始
用“类名,属性/方法调用.
在static方法中不可直接访问非Static的成员.
封装
高内聚:封装细节,便于修改内部代码提高可维护性.
低耦合:简化外部调用,便于使用者使用,扩展和协作。
包:类所在的文件夹,可以将功能相似的类改在同一个中,方便调用,要用Package声明。
将类放入包中:类的文义文件头上加“Package包名”
写项目时最好加包尽量不用默认包
访问包中的类:
在同一个包中直接用类名访问,不用指之类所在的包
两个类不在同一个包中的情况
上一种中习通过在使用类时指定类的路经,
用import语句导入该类
Import导入类
JAVA会默认导入Jave,bong包下的所有类
如果同时导入不同包,名字相同的类,则只能用包名+类名来显示同类、
继承
作用:代码复用、可打展.
方便建模.
Java中用于extends继承且无多继承.
如果定义一个类中.无extends.它的父类是:java.lang.Object.
多态
概念:同一个方法调用由于对象不同可能会有不同的行为
多态在文对于方法不是属性的多态(多态与属性无关)
多态存在要素:继承方法重写、父类引用指向子类对象
父类引用指向子类对象后,用该父类引用调用子类重写的方法
对象的转型 向上:父类引用做方法的形参,实参可以是任意的子类对象
向下:调用运行时类型的方法.只能进行强制类型转换.
抽象类
抽象方法:用abstract修饰 仅有声明.定义的是一种“规范“让子类必须给抽象法提供具体的实现.
抽象类:包含抽象方法的类就是抽象类.
要点:
有抽象方法的类只能是抽象类
抽象类不能被实例化.
抽象函数化必须被重写,除非子类也是抽象类
抽象类只能用来被继承.
接口:是规范,可以更加规范的对子类进行约束
接口中所有类的方法.皆是抽象方法,不需要指明abstract
区别:普通类:具体实现
抽象类:具体实现规范
接口:规范
子数中通过implements来实现接口中的规范.
接口可多继承
格式:class子类extends父类implements接口1,接口2[]
关键字
final关键字.
修饰变量则变量不能被重新赋值
修饰方法,则不可被子类重写可被重载
修饰类则类不能被继承
This关键字
本质:创建好的对象地址,由于在构造法调用前对象已经创建,所以this代表当前对象
用法:在类中出现二义处,用this区分对象.
使用this关键字调用重载的构造方,只能用在构造方法中且必须方法第一句
this不可用于static方法中
object
所有Java的根类,java对象都有Object的属性和方法
Tostring:
Object类中Public, string tostrig()方法返回类型string型
Tostring()方法默认返回“类名+@+16进制hashcode