1.面向过程与面向对象 | 2.类(class) |
3.面向对象三大特征 | 4.面向对象关键字 |
5.object类 | 6.包装类 |
1.面向过程与面向对象
- 面向过程
- 面向对象:类;对象(两个要素)
2.类(class)
- 类: int age; String name; String sex; 定义一些变量保存信息
- 定义类:
class 类名{
所含变量定义;
}
- 使用类实例化对象:在定义了类之后只是定义了数据类型,要有使用类,必须用该类型定义相应的“变量”。一般情况下由类定义的“变量”不叫“定义变量”,而叫“实例化对象”(object)
类名 对象名 = new 类名();
eg:Customer zhangsan=new Customer();
- 对象的引用性质:
和数组名一样,对象名也是表示一个引用,对象名赋值并不是将该对象中的内容进行赋值,只是将引用赋值。
- 成员函数:
Java中的函数编写在一个类中,一般称为成员函数。
- 定义和使用成员函数:
void 函数名称{
函数内容;
}
- 函数参数的传递
1.简单数据类型采用值传递 void fun(int a){a=a+1;}-------c.fun(a)
2. 引用数据类型采用引用传递 void fun (int [] arr){arr[0]=arr[0]+1;}------c.fun(arr)
3.面向对象的三大特征
- 封装
将不能暴露的成员隐藏起来
1.封装的设计思想
2.如何进行封装:使用权限修饰符;
定义与属性存取相关的方法;
3.四种权限修饰符:private,public,protected,default
- 继承
在Java中被继承的叫做父类,基类,超类,与之对应的类称为子类或派生类
1.为什么需要继承
提高代码复用性
类与类之间产生了关系,关系的出现,就是多态的由来
2.继承的格式
class SubClass extends SuperClass {}
3.继承的限制
单继承局限:不能多继承,两个类的耦合性增加,如果父类有改动时会直接影响子类。
显式继承&隐式继承
4.子类都逃不出父类构造的调用
5.继承的特性
子类拥有父类对象所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和方法子类是无法访问,只是拥有。
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
子类可以用自己的方式实现父类的方法。
提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。
6.解决父类没有不带参数的构造函数的两个方法
给父类增加一个不带参的空构造函数
在子类的构造函数中,第一句用super给父类构造函数传参数
注意:super必须写在子类构造函数的第一句,参数必须和父类的参数列表类型匹配
- 多态
1.多态是什么
多态性是指允许不同类的对象对同一消息作出响应,多态性包括参数化多态性和包含多态性,多态性语言具有灵活,抽象,行为共享,代码共享的优势,很好的解决了应用程序函数同名问题。
2.多态性的使用:重载;覆盖
重载:发生在同一类中,与父类子类,继承无关系。标识一个函数除了函数名外,还有函数的参数(个数和类型),一个类中可以有两个或更多的函数,叫同一个名字而他们的参数不同。只是他们的功能相似,所以命名一样,增加可读性。
覆盖:发生在子类中,必须有继承的情况下才有覆盖发生。继承一个类,也就有父类的全部方法,要改变哪个功能,就可以把那个函数在子类中重新实现一遍。这样在调用方法的时候,就是执行子类的过程了,父类中的函数就被覆盖了。
在重写时,子类函数的访问权限不能比父类更加严格
在覆盖的情况下,如果一定要在子类中调用父类的成员函数,可以直接使用“super.函数名”
3. 多态性应用举例:
Animal类,有cat和dog两个子类,,在Animal中有个say方法,当Cat调用这个方法的时候输出的是“小猫喵喵喵”,当Dog调用这个方法时,输出的是“小狗汪汪汪”,这就是Java多态的实现。
4.使用多态
函数传入的形参可以是父类类型,而实际传入的可以是子类对象。
函数的返回类型是父类类型,而实际返回的可以是子类对象。
5.子类和父类对象的类型转换:
子类类型对象转换成父类类型:无需转换
父类类型对象转换成子类类型:强制转换
4.面向对象关键字
1.package关键字
2.import关键字
3.this关键字:当前对象的引用,谁来调用我,我就代表谁
4.static关键字:静态的
5.instanceof关键字:类型判断
6.final关键字:修饰类不能被继承;修饰函数在被子类继承的情况下,show函数不能被重写;修饰成员变量。
7.abstract关键字:修饰类(抽象类);修饰方法(抽象方法);
抽象类,抽象方法:被继承,被重写
不能被实例化,必须被重写,可以含有普通函数
8.interface关键字:
接口中的所有成员变量(全局变量):默认是由public,static,final修饰的
接口中的所有抽象方法(abstract):默认是由public,abstract修饰的
接口是抽象方法和常量值定义的集合。
接口和类的关系:并列,实现
接口可以通过extends继承另一个接口
一个类可以在继承一个父类的同时实现一个或多个接口
5.object类
1.==和equals方法
2.object类的equals方法
3.object类的toString()方法
6.包装类
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)