第五篇:JAVA之面向对象(中)
来源:互联网 发布:linux mv 文件夹 覆盖 编辑:程序博客网 时间:2024/06/01 08:22
本篇要点:
- 封装
- 深入构造器
- 类的继承
- 多态
- Object类及其equals()方法
- static关键字
一、封装
- 封装指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问;
- Java的访问控制级别由小到大:private ---> default ---> protected ---> public
- JavaBean封装类:每个实例变量都被private修饰,为每个实例变量都提供了public修饰的setter和getter方法;
- 模块设计追求高内聚(尽可能把模块的内部数据、功能实现细节隐藏在模块内部独立完成,不允许外部直接干预)、低耦合(仅暴露少量的方法给外部使用);
二、深入构造器
- Java类必须包含一个或一个以上的构造器;
- 构造器最大的用处就是在创建对象时执行初始化;
- 创建Java类时没有提供构造器,系统默认会提供一个空参数的构造器;如果提供了,系统将不会在提供了;
- 构造器重载:同一个类里具体多个构造器,多个构造器的形参列表不同;
三、类的继承
- Java的继承具有单继承的特点,每个子类只有一个直接父类;
- Java继承通过extends关键字来实现,实现继承的类称为子类,被继承的类称为父类或基类;
- Java继承的格式:
- 方法重写:子类包含与父类同名的方法;
- 方法重载和方法重写的区别:重载是在同一个类中;重写是在子类与父类之间;
- super用于限定该对象调用它从父类继承得到的实例变量或方法;
- super也不能出现在static修饰的方法中;
- super可用于访问父类中定义的属性;
- super可用于访问父类中定义的成员方法;
- super可用于在子类构造方法中调用父类的构造器;
- super修饰构造器,通过在子类中使用“super(形参列表)”来显示的调用父类中指定的构造器;
- 在构造器内部,“super(形参列表)”必须要声明在首行;
- 在构造器内部,“this(形参列表)”或“super(形参列表)”只能出现一个;
- 当构造器中,不显示调用“this(形参列表)”或“super(形参列表)”其中任何一个,默认调用的是父类空参数的构造器;
四、多态
- 子类对象的多态性使用的前提:要有类的继承、要有子类对父类方法的重写;
- Java引用变量有两个类型:编译时类型(由声明该变量时使用的类型决定)、运行时类型(由实际赋给该变量的对象决定);
- 如果编译时类型和运行时类型不一致,则会产生多态;
- 对于多态性来说,编译时,”看左边“,将此引用变量理解为父类的类型;运行时,”看右边“,关注于真正对象的实体,子类的对象,那么执行的方法就是子类重写的;
- 子类对象的多态性,并不使用于属性;
- instanceof格式: 对象a instanceof 类A;
- instanceof运算符的前一个操作数是一个引用类型变量,后一个操作数通常是一个类或接口,它用于判断前面的对象是否是后面的类或子类,返回true或false;
- instanceof运算符的作用是:在进行强制类型转换前,首先判断前一个对象是否是后一个类的实例,是否可以成功转换,从而保证代码的健壮性;
五、Object类及其equals()方法
- ==:基本数据类型,根据基本数据类型的值判断是否相等,相等返回true,不相等返回false;引用数据类型,比较引用类型变量的地址值是否相等;
- equals():只能处理引用类型变量,比较引用类型变量的地址值是否相等;
- toString():返回值是String类型,返回类名和它的引用地址;
六、static关键字
- 由类创建的所有的对象都共用这个属性,可被static修饰;
- 类变量随着类的加载而加载,而且独一份;
- 静态的变量可以直接通过“类.类变量”的形式来调用;
- 类变量或类方法的加载是要早于对象,所以当在对象以后,可以“对象.类变量或类方法”使用,但是“类.类变量”是不行的;
- 类变量存在于静态域中;
阅读全文
0 0
- 第五篇:JAVA之面向对象(中)
- 疯狂JAVA讲义---第五章(中)面向对象
- 第五章 面向对象(中)
- JAVA第五弹(面向对象概述)
- 第五章 java 面向对象(上)
- Java基础学习第五章之面向对象上
- 黑马程序员学习log第五篇基础知识:JAVA的面向对象之集合总结
- Python之路【第五篇】:面向对象及相关
- 疯狂JAVA讲义---第五章(上):面向对象
- 疯狂JAVA讲义---第五章(下):面向对象
- Java——第五章(面向对象编程)
- Java面向对象(中)
- JAVA面向对象第五章快速击键
- JAVA面向对象练习05第五种
- java之面向对象
- java之面向对象
- java之面向对象
- java之面向对象
- 什么是j2me?
- 深度置信网络(Deep belief network)matlab初解
- javaScript 原型对象与原型链
- 笨办法学 Python · 续 练习 30:有限状态机
- STL容器 set、 multiset、map、multimap
- 第五篇:JAVA之面向对象(中)
- c++ 找数组中两个元素,其和等于固定值sum,并输出
- hdu-2047阿牛的EOF牛肉串
- HDU 2859
- jsp中在option里面写<c:if></c:if>代码报错解决方案
- Entity Framework数据库初始化四种策略
- Linux之文件系统
- 网站优化三步走,流量转化全都有
- 变量、数据类型和运算符