1、类、对象定义与区别
类是静态定义
对象是动态实例
程序代码操作的是对象而非类
建模得到的是类而非对象
联系: 类是对象的定义
类存在的目的是实例化得到对象
使用new关键字创建对象
通过“.”--- 成员访问符,操作对象
当一个类没有显式声明一个构造方法的时候,系统会有一个默认的无参构造方法
构造方法的作用:对属性进行初始化
2、this关键字
在类的方法中使用this关键字代表的是调用此方法的对象的引用
this可以看作是一个变量,它的值是当前对象的引用
使用this可以处理方法中的成员变量和形参同名的问题
当在方法内需要用到调用该方法的对象时,就可用this
在类的构造方法中可以调用this([参数列表])来调用该类的指定构造方法
3、(1)static 关键字
用来修饰类的成员-修饰成员变量的称之为类变量(静态变量)
修饰成员方法的称之为类方法(静态方法)
用来修饰语句块-称之为静态代码块。先于构造方法之前执行,只会执行一次,用来对静态成员做初始化
静态修饰的成员被所有的对象共享
调用时直接通过类名.成员来进行访问
(2)static关键字注意事项
静态方法中只能访问外部的静态成员
静态方法中不能访问非静态的变量
静态方法中不能出现this关键字
重载:同一类中,同名不同参的方法称为重载方法
访问同名变量时,
super:父类对象的引用
this:当前对象的引用
final 修饰的变量是一个常量
4、构造方法:方法名和类名一致 作用:对属性初始化
方法没有返回类型,void也不能有
抽象类:用abstract修饰的类,不可以直接创建对象
每个class必须拥有构造方法,构造方法不写也有
编译的时候,javac会自动检查类中是否有构造方法
如果有,就用你写的
如果没有,编译器就会自动添加一个构造方法
子类中所有的构造方法无论重载多少个,第一行必须是super()
如果父类有多个构造方法,子类任意调用一个就可以
super语句必须是构造方法第一行代码
5、接口定义:成员方法全抽象、不能定义带有方法体的方法
public abstract 返回值类型 方法名字(参数列表)
接口里不可以使用其他权限 只能用public
接口中成员变量的定义要求:必须定义为常量
固定格式:public static final 数据类型 变量名=值
6、多态性指:同一操作作用于某一类对象,可以有不同的解释,产生不同的执行结果。
多态存在必要条件:
1、需要存在继承和实现关系
2、同样的方法调用而执行不同操作,运行不同代码(重写操作)
3、在运行时父类或者接口的引用变量可以引用其子类的对象
多态中成员特点:
成员变量:
编译时参考父类中有没有这个变量,如果有,编译成功,没有编译失败
运行时候,运行的是父类中的变量值
成员方法:
编译时参考父类中有没有这个方法,如果有编译成功,没有编译失败
运行的时候,运行的是子类的
关键字,instanceof,比较引用数据类型,只能对有继承关系的类可用
图1
网友评论