Day08_面向对象第三天
1、代码块(掌握)
1、概述
由{}扩起来的代码称之为代码块,类或者方法也可认为是代码块,但是一般不这么说,我们平时所说的代码块指的是孤零零的{}
2、代码块作用
局部代码块作用
让变量尽可能早的从内存中消失,提高效率
构造代码块作用是
把所有构造方法中的共同的内容定义在构造代码块中,提高代码复用性,代码块先于构造方法执行,但是一般不用,最终目的初始化成员变量
工作中用的很少,主要应对面试
2、继承(掌握)
1、概述-什么是继承,继承的由来(理解)
1、多个类中存在相同属性和行为时,将这些内容抽取到单个类中,那么多个类无需在定义属性和行为,只需要继承即可
2、多个类称为 子类或派生类, 单个类称为父类或者超类
3、通过extends关键字让他们产生关系
2、继承的好处及特点(掌握)
好处:
1、提高代码的复用性
2、让类与类产生关系,是多态的前提
特点:
1、JAVA中的类只支持单继承,不支持多继承。(因为如果可以多继承,就会出现调用不明确的问题)
2、JAVA支持多层继承 (继承体系)
3、什么时候使用继承(掌握)
子类是父类的一种,如果B类是A类的一种就用继承关系
3、子父类使用变量时,变量的查找顺序(掌握)
1、首先在局部范围找,有就使用2、在本类成员位置找,有就使用3、在父类成员位置找,有就使用,没有就报错
4、this和super比较(掌握)
2、什么时候使用(理解)
1、当子父类中出现同名成员可以用super区分
2、子类调用父类的构造方法可以用super
通过super可以直接调用父类的构造方法,成员变量,成员方法。调用构造方法:super()调用成员变量:super.变量名调用成员方法:super.方法名()
2、this:
通过this可以直接调动本类的构造方法,成员变量,成员方法调用构造方法:this()调用成员变量:this.变量名调用成员方法:this.方法名()
1、this代表本类对象的引用
2、super代表父类内存空间的标志
5、重写override和重载overload(掌握)
1、重写override概念(掌握)
一个类中或者子父类关系中存在多个同名方法,并且参数列表不同的方法 叫重载
6、子父类间成员方法注意事项(掌握)
1、父类中私有方法不能被覆盖
2、子类方法访问权限大于父类方法访问权限 (父类如果是public,子类只能是public)
7、子父类间构造方法特点和注意事项(掌握)
子类默认构造方法都访问了父类的无参构造方法,子类构造方法中都有默认语句super(),并且默认只能是无参的super()语句
因为子类会具备父类中非私有数据,这个初始化靠父类完成,所以先调用父类构造方法来初始化父类中的数据
2、如果父类无无参构造,子类构造如何访问父类构造(掌握)
1、通过super(参数)调用父类带参构造方法
2、通过this(..)调用本类构造方法 //知道就行,一般不用,但是需要注意的是如果一个类中所有的构造方法第一句都调用this(..),这样是错误
8、子父类间静态代码块,代码块,构造方法执行顺序(掌握)
1、优先级
静态代码块 -> 构造代码块 ->构造方法
2、执行顺序
父类静态代码块->子类静态代码块->父类构造代码块->父类构造方法->子类构造代码块->子类构造方法
3、静态代码块,构造代码块,构造方法的作用
9、子类如何使用父类的私有成员变量(理解)
2、子类调用父类的set方法给父类中的私有成员变量赋值,通过调用父类的get方法获取父类的成员变量
10、final关键字的概述和使用(掌握)
很多时候有些方法内容时不能被重写的。而我们知道父类方法声明为public就可以被重写。针对这种情况,我们可以做个标记,告诉别人此类不能被重写
final关键字:最终的意思,可以修饰类,变量,成员方法
被final修饰的方法不能被重写
被final修饰的类不能被继承
被final修饰的变量其实是常量,命名规则:全部大写,每一个单词间用_分割
3、常量
字面值常量 : ’a’,’aa’,234
自定义常量:被final修饰的变量
1、被final修饰的变量必须被显示的赋值一次
1、在定义变量的时候直接赋值 final NAME = "";2、在构造方法中对它进行赋值3、在构造代码块中对它进行赋值
1、在定义变量的时候直接赋值 static final NAME = "";2、通过静态代码块赋值(特例,接口中除外)
11、标准代码练习,至少3次(掌握)
父类 |
|
子类 |
|
测试 |
|
12、今天必须掌握的内容。以及常见的笔试题和面试题(学完这个就可以放心学习后面的知识了)
Day08_面向对象第三天的更多相关文章
- 荒芜的周六-PHP之面向对象(三)
hi 又是开森的周六了.积攒的两周的衣服,终于是差不多洗完了.大下午的才来学点东西~~ 1.PHP面向对象(三) 四.OOP的高级实践 4.3 Static-静态成员 <?phpdate_def ...
- C++编程之面向对象的三个基本特征
面向对象的三个基本特征是:封装.继承.多态. 封装 封装最好理解了.封装是面向对象的特征之一,是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类 ...
- OO面向对象第三次作业总结
面向对象第三次作业总结 一.JML基础梳理及工具链 注释结构 行注释://@annotation 块注释:/*@ annotation @*/ 两种注释都是放在被注释部分上面. 常见表达式 原子表达式 ...
- java面向对象(三)
java面向对象(三) 1.四种权限修饰符 public > protected > (default) > private 注意:(default)并不是关键字default,而是 ...
- C++ 面向对象的三个特点--继承与封装(一)
面试的时候经常会有很多概念性的东西,许久不用都会很生疏,特意整理一下方便自己以后不记得了可以查看一下,也顺便帮助自己复习一下. 概念 继承是面向对象程序设计的一个重要特性,它允许在既有类的基础上创建新 ...
- 前端笔记之JavaScript面向对象(三)初识ES6&underscore.js&EChart.js&设计模式&贪吃蛇开发
一.ES6语法 ES6中对数组新增了几个函数:map().filter().reduce() ES5新增的forEach(). 都是一些语法糖. 1.1 forEach()遍历数组 forEach() ...
- python之路--面向对象(三)
一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象.由于Python中一切都是类,所以 ...
- 2018-北航-面向对象-前三次OO作业分析与小结
基于度量的程序结构分析 由于平时使用了NetBrains出品的IDEA作为IDE,在分析程序的时候我使用了IDEA的插件Metrics Reloaded.然而在使用时发现不懂得很多分析项目的含义,因此 ...
- Java面向对象的三个特征
首先,Java面向对象的三大特征: 三大特征: ▪ 封装 ▪ 继承 ▪ 多态 首先面向对象的第一个特性 封装 : 封装:就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操 ...
随机推荐
- splunk rest api search
如下: curl -u admin:changeme -k https://localhost:8089/services/search/jobs -d search="search sou ...
- SqlHelper帮助类
数据库连接字符串//Data Source=.;Initial Catalog=Test1;User Id=sa;Password=123456; public static class SqlHel ...
- MVC3+EF4.1学习系列(五)----- EF查找导航属性的几种方式
文章索引和简介 通过上一篇的学习 我们把demo的各种关系终于搭建里起来 以及处理好了如何映射到数据库等问题 但是 只是搭建好了关系 问题还远没有解决 这篇就来写如何查找导航属性 和查找导航属性的几种 ...
- 获取IE代理服务器信息
“局域网设置”里有自动配置.代理服务器的设置项目,在进行网络通讯相关的开发时,需要使用到它们,下边介绍如何将这些设置信息读取出来. 当“使用自动配置脚本”不使用时,使用WinHttpGetIEProx ...
- event.srcElement在火狐(FireFox)下的兼容问题。搜索框获得焦点时默认文字变化
前言: 项目中用到了一个功能,搜索框里有默认的文字,当搜索框获得焦点时里面的默认文字消失,如果失去焦点时搜索框内容为空则让里面的内容回复默认!,. 实现: 很轻松的在网上找到了类似代码 $(" ...
- JSON:org.json的基本用法
java中用于解释json的主流工具有org.json.json-lib与gson,本文介绍org.json的应用. 官方文档: http://www.json.org/java/ http://de ...
- AJAX初步
1.什么是AJAX 客户端与服务器,可以在[不必刷新整个浏览器]的情况下,与服务器进行异步通讯的技术,即,AJAX是一个[局部刷新]的[异步]通讯技术: AJAX不是全新的语言,是2005年Googl ...
- Problem K 栈
Description A math instructor is too lazy to grade a question in the exam papers in which students a ...
- 动态加载DLL函数GetProcAddress错误
GetLastError获取错误代码127,指代“找不到指定程序”. 解决: 转自:http://hi.baidu.com/violetwangy/item/c35b3b95ecf5374cf0421 ...
- iOS多线程之GCD学习笔记
什么是GCD 1.全称是Grand Central Dispatch,可译为“牛逼的中枢调度器” 2.纯C语言,提供了非常多强大的函数 GCD的优势 GCD是苹果公司为多核的并行运算提出的解决方案 G ...