JavaEE基础(八)
1、面向对象(代码块的概述和分类)(了解)(面试的时候会问,开发不用或者很少用)
- A:代码块概述
- 在Java中,使用{}括起来的代码被称为代码块。
- B:代码块分类
- 根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)。
- C:常见代码块的应用
- a:局部代码块
- 在方法中出现;限定变量生命周期,及早释放,提高内存利用率
- b:构造代码块 (初始化块)
- 在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行
- c:静态代码块
- 在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。
- 一般用于加载驱动
- a:局部代码块
2、面向对象(代码块的面试题)
- A:看程序写结果
class Student {static {System.out.println("Student 静态代码块");}{System.out.println("Student 构造代码块");}public Student() {System.out.println("Student 构造方法");} }class Demo2_Student {static {System.out.println("Demo2_Student静态代码块");}public static void main(String[] args) {System.out.println("我是main方法");Student s1 = new Student();Student s2 = new Student();} }
3、面向对象(继承案例演示)
- A:继承(extends)
- 让类与类之间产生关系,子父类关系
- B:继承案例演示:
- 动物类,猫类,狗类
- 定义两个属性(颜色,腿的个数)两个功能(吃饭,睡觉)
- C:案例演示
- 使用继承前
- D:案例演示
- 使用继承后
4、面向对象(继承的好处和弊端)
- A:继承的好处
- a:提高了代码的复用性
- b:提高了代码的维护性
- c:让类与类之间产生了关系,是多态的前提
B:继承的弊端
类的耦合性增强了。
开发的原则:高内聚,低耦合。
- 耦合:类与类的关系
- 内聚:就是自己完成某件事情的能力
5、面向对象(Java中类的继承特点)
- A:Java中类的继承特点
- a:Java只支持单继承,不支持多继承。(一个儿子只能有一个爹)
- 有些语言是支持多继承,格式:extends 类1,类2,...
- b:Java支持多层继承(继承体系)
- a:Java只支持单继承,不支持多继承。(一个儿子只能有一个爹)
- B:案例演示
- Java中类的继承特点
- 如果想用这个体系的所有功能用最底层的类创建对象
- 如果想看这个体系的共性功能,看最顶层的类
- Java中类的继承特点
6、面向对象(继承的注意事项和什么时候使用继承)
- A:继承的注意事项
- a:子类只能继承父类所有非私有的成员(成员方法和成员变量)
- b:子类不能继承父类的构造方法,但是可以通过super(马上讲)关键字去访问父类构造方法。
- c:不要为了部分功能而去继承
- 项目经理 姓名 工号 工资 奖金
- 程序员 姓名 工号 工资
B:什么时候使用继承
- 继承其实体现的是一种关系:"is a"。 Person Student Teacher 水果 苹果 香蕉 橘子
采用假设法。 如果有两个类A,B。只有他们符合A是B的一种,或者B是A的一种,就可以考虑使用继承。
7、面向对象(继承中成员变量的关系)
- A:案例演示
- a:不同名的变量
- b:同名的变量
8、面向对象(this和super的区别和应用)
- A:this和super都代表什么
- this:代表当前对象的引用,谁来调用我,我就代表谁
- super:代表当前对象父类的引用
- B:this和super的使用区别
- a:调用成员变量
- this.成员变量 调用本类的成员变量,也可以调用父类的成员变量
- super.成员变量 调用父类的成员变量
- b:调用构造方法
- this(...) 调用本类的构造方法
- super(...) 调用父类的构造方法
- c:调用成员方法
- this.成员方法 调用本类的成员方法,也可以调用父类的方法
- super.成员方法 调用父类的成员方法
- a:调用成员变量
9、面向对象(继承中构造方法的关系)
- A:案例演示
- 子类中所有的构造方法默认都会访问父类中空参数的构造方法
B:为什么呢?
- 因为子类会继承父类中的数据,可能还会使用父类的数据。
所以,子类初始化之前,一定要先完成父类数据的初始化。
其实:
- 每一个构造方法的第一条语句默认都是:super() Object类最顶层的父类。
10、面向对象(继承中构造方法的注意事项)
- A:案例演示
- 父类没有无参构造方法,子类怎么办?
- super解决
- this解决
- B:注意事项
- super(…)或者this(….)必须出现在构造方法的第一条语句上
11、面向对象(继承中的面试题)
- A:案例演示
看程序写结果1 class Fu{public int num = 10;public Fu(){System.out.println("fu");} } class Zi extends Fu{public int num = 20;public Zi(){System.out.println("zi");}public void show(){int num = 30;System.out.println(num);System.out.println(this.num);System.out.println(super.num);} } class Test1_Extends {public static void main(String[] args) {Zi z = new Zi();z.show();} }看程序写结果2 class Fu {static {System.out.println("静态代码块Fu");}{System.out.println("构造代码块Fu");}public Fu() {System.out.println("构造方法Fu");} }class Zi extends Fu {static {System.out.println("静态代码块Zi");}{System.out.println("构造代码块Zi");}public Zi() {System.out.println("构造方法Zi");} }Zi z = new Zi(); 请执行结果。
12、面向对象(继承中成员方法关系)
- A:案例演示
- a:不同名的方法
- b:同名的方法
13、面向对象(方法重写概述及其应用)
- A:什么是方法重写
- 重写:子父类出现了一模一样的方法(注意:返回值类型可以是子父类,这个我们学完面向对象讲)
- B:方法重写的应用:
- 当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法。这样,即沿袭了父类的功能,又定义了子类特有的内容。
- C:案例演示
- a:定义一个手机类。
14、面向对象(方法重写的注意事项)
A:方法重写注意事项
- a:父类中私有方法不能被重写
- 因为父类私有方法子类根本就无法继承
- b:子类重写父类方法时,访问权限不能更低
- 最好就一致
c:父类静态方法,子类也必须通过静态方法进行重写
- 其实这个算不上方法重写,但是现象确实如此,至于为什么算不上方法重写,多态中我会讲解(静态只能覆盖静态)
子类重写父类方法的时候,最好声明一模一样。
- a:父类中私有方法不能被重写
- B:案例演示
- 方法重写注意事项
15、面向对象(方法重写的面试题)
A:方法重写的面试题
- Override和Overload的区别?Overload能改变返回值类型吗?
- overload可以改变返回值类型,只看参数列表
方法重写:子类中出现了和父类中方法声明一模一样的方法。与返回值类型有关,返回值是一致(或者是子父类)的
方法重载:本类中出现的方法名一样,参数列表不同的方法。与返回值类型无关。
子类对象调用方法的时候:
- 先找子类本身,再找父类。
16、面向对象(使用继承前的学生和老师案例)
- A:案例演示
- 使用继承前的学生和老师案例
- 属性:姓名,年龄
- 行为:吃饭
- 老师有特有的方法:讲课
- 学生有特有的方法:学习
17、面向对象(使用继承后的学生和老师案例)
- A:案例演示
- 使用继承后的学生和老师案例
18_面向对象(猫狗案例分析,实现及测试)
- A:猫狗案例分析
- B:案例演示
- 猫狗案例继承版
- 属性:毛的颜色,腿的个数
- 行为:吃饭
- 猫特有行为:抓老鼠catchMouse
- 狗特有行为:看家lookHome
19、面向对象(final关键字修饰类,方法以及变量的特点)
- A:final概述
- B:final修饰特点
- 修饰类,类不能被继承
- 修饰变量,变量就变成了常量,只能被赋值一次
- 修饰方法,方法不能被重写
- C:案例演示
- final修饰特点
20、面向对象(final关键字修饰局部变量)
A:案例演示
方法内部或者方法声明上都演示一下(了解)
基本类型,是值不能被改变
- 引用类型,是地址值不能被改变,对象中的属性可以改变
21、面向对象(final修饰变量的初始化时机)
- A:final修饰变量的初始化时机
- 显示初始化
- 在对象构造完毕前即可
转载于:https://www.cnblogs.com/GJ-ios/p/5991479.html
JavaEE基础(八)相关推荐
- 07夯实基础之JavaEE基础
文章目录 JavaEE基础 一.Tomcat 1.1 Tomcat简介 1.2 Tomcat下载 1.3 Tomcat安装及环境变量配置 1.4 Tomcat 的⽬录说明 1.4.1 bin 1.4. ...
- css3制作八棱锥_CSS基础八部分-第二部分
emmet语法 1.简介 Emmet语法的前身是Zen coding,它使用缩写,来提高html/css的编写速度, Vscode内部已经集成该语法. 2.快速生成HTML结构语法 生成标签 直接输入 ...
- C++学习基础八——重载输入和输出操作符
C++学习基础八--重载输入和输出操作符 一.重载输入操作符的要点: 1.返回值为istream &. 2.第一个参数为istream &in. 3.第二个参数为自定义类型的引用对象( ...
- 百一测评java基础答案_百一测评——《Web应用开发》选择题(含参考答案)—JavaEE基础...
<百一测评--<Web应用开发>选择题(含参考答案)-JavaEE基础>由会员分享,可在线阅读,更多相关<百一测评--<Web应用开发>选择题(含参考答案)- ...
- Socket基础八:网络IO模型的应用
Socket基础八:网络IO模型的应用 作者:刘磊 2020.4.27 参考书目:<Windows网络编程>刘琰等著 一.实验目的 1)掌握WindowsI/O操作的基本原理. 2)掌握阻 ...
- 3. 什么是JSR参考实现? - JavaEE基础系列
本文是JavaEE基础系列的第三节. Java EE简介 - JavaEE基础系列 JSR简介 - JavaEE基础系列 上一节中, 我们介绍了什么是JSR.JSR就是一个提交到JCP的抽象请求,包含 ...
- 学完javaee基础,编的一个小游戏—太阳系的八大行星
项目完整代码已放到码云上 自行下载: https://gitee.com/tutu_57893_7590/planets 学完javaee基础,编的一个小游戏-太阳系的八大行星 要使太阳系的八大行星, ...
- 北京黑马面授java基础_北京顺义黑马JavaEE基础100期(20190324面授)——开班贴
追梦赤子心 北京顺义黑马JavaEE基础100期(20190324面授) 梦想,是对未来的一种期望:梦想,是助人成功的基石:梦想是催人奋进的动力:梦想是勇往直前的源泉. 而我有幸,在黑马碰到一批又一批 ...
- 2.JSR简介 - JavaEE基础系列
JSR, Java Specification Request, Java规范请求; 也有的地方翻译为Java规范提案. 在前面的文章 1. Java EE简介 - JavaEE基础系列中, 简要介绍 ...
最新文章
- java 对象内存布局_Java--对象内存布局
- Scala中Manifest、ClassTag、TypeTag的学习
- 吐血整理!这可能是最全的机器学习工具手册
- Ubuntu下添加开机启动脚本
- 【线程呓语】与线程相关的一些概念
- oracle 数据库中拆分,oracle数据库字符串拆分
- 关于抽象类与接口的理解
- UIImageView 响应UIButton的点击事件
- 显示“没有注册类”问题解决方法(mscomm)
- php fckeditor,FCKeditor的PHP配备
- MatLab 中计算开根号
- 利用小波分解后,频率计算问题
- 在面试时应该如何自我介绍?
- 打开和设置IDEA欢迎界面
- 达梦数据库的服务启动
- BugkuCTF之misc题之图穷匕见
- java仿QQ聊天室群聊(快速写一个简易QQ)
- 【树结构】Trie字典树
- 原生js封装picker地址三级联动方法
- 程序员快速阅读,绝对不是神话
热门文章
- python绘图实例-Python matplotlib基础绘图函数示例
- python图片识别-用10行Python代码进行图像识别
- python基础包括什么-python中f是什么
- python与excel表格-超简单:用Python让Excel飞起来
- python面试常见问题-10个Python面试常问的问题
- python数字类型-Python基础:数据类型-数字(5)
- c语言 python-C语言、Java语言和python语言的区别在哪里
- python的软件叫什么-django中的app是指什么
- python报班大概多少钱-python培训班价格大概多少?
- python处理excel字典-使用Python代码处理Excel