一 面向对象的程序设计(Oop)
:三大特性
1,封装
:1》类(class)(getter/setter);
: 2>方法(method)
2,继承
:1》extends (可拓展性)
*关键词:
(this:当前类在new 之后生成的对象,在对象内部我们使用this关键字来说明当前对象)
(super:<超类/父类>当前类继承一个父类后,在当前实例化对象后,在当前中调用父类资源时,使用super关键字)
**继承时,子类被实例化前,VM会对当前的对象的父类先实例化(先调用父类的构造器)
扩展知识点:
一:访问修饰符修饰了类,方法,属性;
:访问修饰符对修饰的内容进行访问权限的控制;
1》public(公共的):
1:可以修饰类,方法,属性;
作用 2:public意味着全开放,旨在被修饰的内容可以随意访问;
2》protect(受保护的):
1:可以修饰类中的方法和属性;
2: 这个修饰符无论在何处出现protect修饰的内容,只有在继承关系的前提下protect才有效;
3:protected修饰的方法或属性只能被当前对象的子类访问;
二:默认修饰符(不访问修饰符)
说明1:类中方法式属性(叫类成员)可以不加访问修饰符;
2:不加访问修饰符的类种方法和属性可以被同一个包中的其他程序访问;
3》private(私有的)
说明1:private可以修饰类中方法和属性;
作用1:在类中,使用private修饰的方法和属性只能在当前类的内部使用;
3,多态
1)父类对象可以用他的任意一个子类来替代;
2)接口对象可以用它的任意一个实现类来替代;
使用场景:1》多态多出现在方法的参数中;
2》方法重载也是多态的表现;
()*封装 *继承 *多态()------》核心的核心
拓展:
一:抽象类(abstract)
1,类前使用abstract修饰 ;
2,类中可以包含抽象方法;
3,抽象类可以被子类继承使用,但不能直接实例化;
(抽象类被继承时,抽象方法必须重写)
4,抽象类中的抽象方法必须使用abstract来修饰;
5,如果类中出现了抽象类方法,则类也必须是抽象的;
二:内部类
1,内部类设计在类的结构中 ;
2,只对当前类有影响式新造的对象只在当前类中使用,则该对象特殊的功能封装成类,并将这个(内部)类编写在外层类中;
3,内部类用于在类的内部创建一个只属于自己的类对象;
三:匿名类
*匿名类是针对接口或抽象类不能实例化的问题产生 的解决方案;
*目标:强行对接口或抽象类进行实例化 实现new接口或者是抽象类{抽象方法的重写}
设计模式
1,单例模式:(面向对象的优化方法)
特点:使用类对象在整个应用程序中只能生成唯一一个对象=(只能实例化一次);
如何实现单例模式?
1,构造器改成private修饰;
2,在类中设置一个全局变量(static),变量类型为当前类;
3,做一个方法,判断static变量是否为空,为空则实例化对象并保存到static变量中,否则什么也不做;
2,工厂模式:
特点:静态类,类中包含了createXX方法,方法参数是一个可选项;
原理:在类中储备了大量同类型的对象根据参数的选项值来判断返回哪一个对象;