原标题:JAVA面向对象的那点事
Java学习课程中的面向对象是无疑是学习的重中之重,在理解的基础上能够总结出来也是不一定额,今天千锋小编给大家带来的都是满满的干货——面向对象的小结送上。
面向对象是一种思想
面向对象三大特征:封装、继承、多态
万事万物皆对象
面向对象2大核心:
1、类:抽象、模板、概念、定义:所有对象共同拥有的属性和方法的组合
2、对象:具体的、实例
类的格式:
[修饰符] class 类名 [extends 类名][implements 接口名,……]{
[属性]
[修饰符] 数据类型 属性名;
//public/protected/private/final/static
[方法]
[修饰符1,修饰符2] 返回值类型 方法名([形式参数列表]){
代码块;
}
[构造方法]
[修饰符] 类名([形式参数列表]){
代码块;
}
}
对象创建格式:
类名 对象名=[new 类名([实际参数列表])];
public/final/abstract可以修饰类
this用法:本类的
1、代指本类对象.可以用来区分同名的成员变量和局部变量
2、调用本类的其它的构造方法
只能在构造方法中
必须在第一行
格式:this([实际参数列表]);
属性的封装:
1、属性私有
2、公有的get和set方法
static用法:静态的
1、修饰属性:静态属性
2、修饰方法:静态方法
3、修饰构造代码块:静态代码块
4、修饰内部类:静态内部类
访问修饰符:
1、public:公共
2、protected:受保护
3、default/package(只是表示的是没有访问修饰符的状态):默认
4、private:私有
包:
1、package 声明包
2、import导入包
继承:一个类拥有另一个类的属性和方法
extends
java只允许单继承,但是可以继承的传递性
super用法:子类中
1、调用父类中的属性和方法2、调用父类的构造方法
只能在子类的构造方法中,只能在第一行格式:super([实际参数列表]);
重写:子类增强父类中的方法
1、子类中,重写的是父类的方法2、访问修饰符不能比父类的更严格3、静态/非静态、返回值类型、方法名、形式参数列表都要相同
Object类:所有类的父类
常用方法:
1、hashCode2、toString3、equals4、getClass
final用法:最终的
1、修饰变量:常量,只能赋值一次
2、修饰方法:不能被重写
3、修饰类:不能被继承
abstract用法:抽象的
1、修饰方法:抽象方法
格式:[修饰符] abstract 返回类型 方法名([形式参数列表]);
抽象方法只有方法的声明,没有方法的实现(没有方法体)
2、修饰类:抽象类
抽象类不能实例化,抽象类不一定有抽象方法,有抽象方法的类一定是抽象类
接口:由常量和抽象方法组成的结构体
属性:默认拥有public、static、final
方法:默认拥有public、abstract
多态:多种形态
1、静态化(编译时)多态
重载
2、动态化(运行时)多态
重写
对象转型
1、向上转型:子类到父类,自动
2、向下转型:父类到子类,强制
一般都会结合instanceof使用
instanceof:用法
验证对象是否属于某种类型
格式:对象名 instanceof 类名
内部类:定义在类内部的类
1、成员内部类
内部不能使用静态的
成员内部类名 对象=外部类对象名.new 类名();
2、匿名内部类
格式:new 类名/接口名(){重写的方法}
只能使用一次,没有类名,产生是一个对象
3、静态内部类
内部不能使用外部类的非静态属性和方法
4、局部内部类
定义在方法内部的,也只能在方法中使用
操作局部变量时,要求局部变量是final修饰的
设计模式:单例模式:保证类的唯一实例
JAVA的原则:
1、最小作用域最强原则(就近原则)
2、最佳匹配性原则(重载)返回搜狐,查看更多
责任编辑: