javase面向对象个人小总结,javase面向对象总结
javase面向对象个人小总结,javase面向对象总结
面向对象与面向过程
面向过程:把过程当作重点(注重的是步骤)
面向对象:把对象当成重点(重点在于这个对象)
什么是面向对象
把客观世界中的事物当成对象,把该对象所解决的实际问题,使用java代码来体现出来的过程(创建对象,寻找对象,使用对象)
什么是对象
就是客观世界中唯一存在的事物就是对象,所以可以说万物皆对象
对象的组成
属性,行为
类
理解为对象的模型(具有相同属性和行为的对象的集合的统称)
作用:用来创建无数的对象
组成:属性 , 行为
成员变量 成员方法
成员变量:[修饰符] 数据类型 变量名;
成员方法:[修饰符] [跟返回值有关则有,无关则没有] 方法名(参数<有或者无>) {方法体}
如何创建对象
类名 对象名=new 类名();
如何给对象设置属性
对象名.属性名=值;
如何调用方法
对象名.方法名();
方法的重载:在同一类中,方法名相同,参数列表不同(个数不同,数据类型不同,顺序不同)
方法的重写:在继承的子类中,方法名相同,参数列表相同,返回值类型相同。
注:子类的方法修饰符要大于或等于父类的修饰符
全局变量和局部变量的区别
1,全局变量作用于整个类,局部变量仅仅作用于某个方法
2,全局变量可以用修饰符修饰,局部变量不能
3,全局变量可以与局部变量重名,值采用就近原则
全局变量:定义在类中的变量
局部变量:定义在方法中的变量
构造器
是特殊的方法,用来创建对象
格式:[修饰符] 构造器名(参数列表){...}(构造器名必须和类名一致)
当没有写构造器时,系统会自动提供一个无参的构造器,当写了构造器时,系统就 不会提供默认的构造器
有参构造器,为了给对象初始化属性值
static修饰符
1,修饰成员变量
类变量和实例变量的区别:
a,类变量使用了static修饰,实例变量没有用static修饰
b,类变量的值作用于整个类,实例变量仅仅作用于某个对象
c,类变量可以用对象名.变量名操作,也可以用使用类名.变量名操作
实例变量值可以使用对象名.变量名操作
2,修饰成员方法
类方法和实例方法的区别:
a,类方法使用了 static修饰,实例方法没有用static修饰
b,类方法值可以调用类变量和类方法,实例方法可以调用所有的变量 和方法
c,类方法可以使用对象名.方法名,也可以使用类名.方法名,实例方法 值可以使用对象名.方法调用
3,修饰代码块
静态代码块和普通代码块的区别:
代码块执行时要先于构造器,先执行静态代码块,然后执行普通代码块
注意:静态 代码块只在第一次撞见对象时执行,以后都不执行
访问修饰符:public protected 缺省的 private
作用:限制访问权限的
1,修饰成员变量和成员方法(构造器)
a,在本类中,可以访问所有属性和方法
b,在同包不同类中,值可以访问非私有的属性和方法
c,在不同包中,值可以访问公共的属性和方法
d,在不同包的子类中,可以访问公共的和受保护的属性和方法
2,修饰类 public 缺省的
a,在同包中的同类或不同类中,可以访问公共和缺省的类
b,在不同保重,之可以访问公共的类
面向对象的三大特征
封装,继承,多态
封装:把所有的属性私有化,提供公共的get方法和set方法,便于外界的操作
继承:子类继承父类的所有的非私有的属性和方法(为了省写代码,也是一种规 范)
继承是单继承,子类不能继承父类的构造器
方法的重写:由于从父类继承的方法不满足于子类的形式,所以要重写
this(当前对象)和super(父类对象)
this:1,当全局变量和局部变量重名时,可以用this来调用全局变量
2,在同一个类中的构造器中,可以使用this来调用同类中的另外一个狗 在其,不再创建对象,仅仅执行方法体(this();放在第一行)
super:1,当子类的属性和方法与父类的属性和方法重名时,可以使用super 来调用被隐藏的父类的属性和方法,当子类对象创建时,系统会自 动调用父类的午餐构造器来创建一个父类对象与子类对象一一对应
2,在子类的构造器中,可以用来置顶系统调用哪个父类的构造器来 创建父类对象与子类对象一一对应(必须放在第一行,并且父类一 般都要有一个无参的构造器)
如果一个方法的方法体无法确定时,可以把该方法定义为抽象的方法
抽象的方法没有方法体
格式: 修饰符 abstract 返回值类型 方法名();
如果一个类有抽象的方法,则该类一定是抽象类
抽象类=普通类+抽象方法;
抽象类不是具体的类,不能用来创建对象,可以用来被继承,如果一个类继承了抽 象类,则必须重写其所有的抽象方法
多态:一种事物的多种形态
1,方法的多态
a,方法的重载
b,方法的重写
2,变量的多态
a,向上转型(自动类型转换)
b,向下转型(强制类型转换)
a,父类定义的变量可以用来保存本身创建的对象,也可以用来保存子类创建的对 象,子类所扩展的属性和方法会消失,如果方法被重写,则执行重写后的方法
b,子类定义的比阿娘可以用来保存本身创建的对象,也可以用来保存父类创建的 对象,要先向上转型,然后才能想下转型
接口:抽象化的抽象类
[修饰符] interface 接口名{常量,抽象方法}
可以被继承(通常称为被实现)--->多实现接口
可以省略常量和抽象方法的修饰符
注意:要先继承,再实现
final修饰符:
1,修饰变量--->常量 不可被改变
2,修饰方法--->最终方法 不可以被重写
3,修饰类--->最终类 不可以被继承
4种内部类
1,成员内部类
a,成员内部类可以访问外部类的所有属性和方法(包含private)
b,创建内部类对象必须依赖于外部类对象
c,当外部类的属性和方法与内部类的属性和方法重名时,可以使用外部类类 名.this.属性/方法来调用外部类的属性和方法
外部类 外部类变量=new 外部类();
外部类.内部类 内部类变量=外部类变量.new 内部类();
2,静态内部类
静态内部类值可以访问外部类中的静态属性和方法
创建静态内部类对象时,不需要依赖于外部对象
3,局部内部类
4,匿名内部类
接口(抽象类) 变量=new接口(抽象类){重写接口(抽象类)的方法}
其中1和4比较常用!!
相关文章
- 暂无相关文章
用户点评