1、面向对象(代码块的概述和分类)(了解)(面试的时候会问,开发不用或者很少用)

  • A:代码块概述

    • 在Java中,使用{}括起来的代码被称为代码块。
  • B:代码块分类
    • 根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)。
  • C:常见代码块的应用
    • a:局部代码块

      • 在方法中出现;限定变量生命周期,及早释放,提高内存利用率
    • b:构造代码块 (初始化块)
      • 在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行
    • c:静态代码块 
      • 在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。
      • 一般用于加载驱动

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支持多层继承(继承体系)
  • B:案例演示
    • 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.成员方法 调用父类的成员方法

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:父类静态方法,子类也必须通过静态方法进行重写

      • 其实这个算不上方法重写,但是现象确实如此,至于为什么算不上方法重写,多态中我会讲解(静态只能覆盖静态)
    • 子类重写父类方法的时候,最好声明一模一样。

  • 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基础(八)相关推荐

  1. 07夯实基础之JavaEE基础

    文章目录 JavaEE基础 一.Tomcat 1.1 Tomcat简介 1.2 Tomcat下载 1.3 Tomcat安装及环境变量配置 1.4 Tomcat 的⽬录说明 1.4.1 bin 1.4. ...

  2. css3制作八棱锥_CSS基础八部分-第二部分

    emmet语法 1.简介 Emmet语法的前身是Zen coding,它使用缩写,来提高html/css的编写速度, Vscode内部已经集成该语法. 2.快速生成HTML结构语法 生成标签 直接输入 ...

  3. C++学习基础八——重载输入和输出操作符

    C++学习基础八--重载输入和输出操作符 一.重载输入操作符的要点: 1.返回值为istream &. 2.第一个参数为istream &in. 3.第二个参数为自定义类型的引用对象( ...

  4. 百一测评java基础答案_百一测评——《Web应用开发》选择题(含参考答案)—JavaEE基础...

    <百一测评--<Web应用开发>选择题(含参考答案)-JavaEE基础>由会员分享,可在线阅读,更多相关<百一测评--<Web应用开发>选择题(含参考答案)- ...

  5. Socket基础八:网络IO模型的应用

    Socket基础八:网络IO模型的应用 作者:刘磊 2020.4.27 参考书目:<Windows网络编程>刘琰等著 一.实验目的 1)掌握WindowsI/O操作的基本原理. 2)掌握阻 ...

  6. 3. 什么是JSR参考实现? - JavaEE基础系列

    本文是JavaEE基础系列的第三节. Java EE简介 - JavaEE基础系列 JSR简介 - JavaEE基础系列 上一节中, 我们介绍了什么是JSR.JSR就是一个提交到JCP的抽象请求,包含 ...

  7. 学完javaee基础,编的一个小游戏—太阳系的八大行星

    项目完整代码已放到码云上 自行下载: https://gitee.com/tutu_57893_7590/planets 学完javaee基础,编的一个小游戏-太阳系的八大行星 要使太阳系的八大行星, ...

  8. 北京黑马面授java基础_北京顺义黑马JavaEE基础100期(20190324面授)——开班贴

    追梦赤子心 北京顺义黑马JavaEE基础100期(20190324面授) 梦想,是对未来的一种期望:梦想,是助人成功的基石:梦想是催人奋进的动力:梦想是勇往直前的源泉. 而我有幸,在黑马碰到一批又一批 ...

  9. 2.JSR简介 - JavaEE基础系列

    JSR, Java Specification Request, Java规范请求; 也有的地方翻译为Java规范提案. 在前面的文章 1. Java EE简介 - JavaEE基础系列中, 简要介绍 ...

最新文章

  1. java 对象内存布局_Java--对象内存布局
  2. Scala中Manifest、ClassTag、TypeTag的学习
  3. 吐血整理!这可能是最全的机器学习工具手册
  4. Ubuntu下添加开机启动脚本
  5. 【线程呓语】与线程相关的一些概念
  6. oracle 数据库中拆分,oracle数据库字符串拆分
  7. 关于抽象类与接口的理解
  8. UIImageView 响应UIButton的点击事件
  9. 显示“没有注册类”问题解决方法(mscomm)
  10. php fckeditor,FCKeditor的PHP配备
  11. MatLab 中计算开根号
  12. 利用小波分解后,频率计算问题
  13. 在面试时应该如何自我介绍?
  14. 打开和设置IDEA欢迎界面
  15. 达梦数据库的服务启动
  16. BugkuCTF之misc题之图穷匕见
  17. java仿QQ聊天室群聊(快速写一个简易QQ)
  18. 【树结构】Trie字典树
  19. 原生js封装picker地址三级联动方法
  20. 程序员快速阅读,绝对不是神话

热门文章

  1. python绘图实例-Python matplotlib基础绘图函数示例
  2. python图片识别-用10行Python代码进行图像识别
  3. python基础包括什么-python中f是什么
  4. python与excel表格-超简单:用Python让Excel飞起来
  5. python面试常见问题-10个Python面试常问的问题
  6. python数字类型-Python基础:数据类型-数字(5)
  7. c语言 python-C语言、Java语言和python语言的区别在哪里
  8. python的软件叫什么-django中的app是指什么
  9. python报班大概多少钱-python培训班价格大概多少?
  10. python处理excel字典-使用Python代码处理Excel