面向对象(代码块的概述和分类)
* A:代码块概述
* 在Java中,使用{}括起来的代码被称为代码块。
* B:代码块分类
* 根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)。
* C:常见代码块的应用
* a:局部代码块
* 在方法中出现;限定变量生命周期,及早释放,提高内存利用率
* b:构造代码块 (初始化块)
* 在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行
* c:静态代码块
* 在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。
* 一般用于加载驱动

面向对象(掌握)
* A:看程序写结果
*
class Student {
static {
System.out.println("Student 静态代码块");
}

{
System.out.println("Student 构造代码块");
}

public Student() {
System.out.println("Student 构造方法");
}
}

class DemoStudent {
static {
System.out.println("DemoStudent静态代码块");
}

public static void main(String[] args) {
System.out.println("我是main方法");

Student s = new Student();
Student s = new Student();
}
}

面向对象(继承案例演示)(掌握)
* A:继承(extends)
* 让类与类之间产生关系,子父类关系
* B:继承案例演示:
* 动物类,猫类,狗类
* 定义两个属性(颜色,腿的个数)两个功能(吃饭,睡觉)
* C:案例演示
* 使用继承前
* D:案例演示
* 使用继承后

面向对象(继承的好处和弊端)(掌握)
* A:继承的好处
* a:提高了代码的复用性
* b:提高了代码的维护性
* c:让类与类之间产生了关系,是多态的前提
* B:继承的弊端
* 类的耦合性增强了。

* 开发的原则:高内聚,低耦合。
* 耦合:类与类的关系
* 内聚:就是自己完成某件事情的能力

面向对象(Java中类的继承特点)
* A:Java中类的继承特点
* a:Java只支持单继承,不支持多继承。(一个儿子只能有一个爹)
* 有些语言是支持多继承,格式:extends 类,类,...
* b:Java支持多层继承(继承体系)
* B:案例演示
* Java中类的继承特点
* 如果想用这个体系的所有功能用最底层的类创建对象
* 如果想看这个体系的共性功能,看最顶层的类

面向对象(继承的注意事项和什么时候使用继承)
* A:继承的注意事项
* a:子类只能继承父类所有非私有的成员(成员方法和成员变量)
* b:子类不能继承父类的构造方法,但是可以通过super(马上讲)关键字去访问父类构造方法。
* c:不要为了部分功能而去继承
* 项目经理 姓名 工号 工资 奖金
* 程序员 姓名 工号 工资
* B:什么时候使用继承
* 继承其实体现的是一种关系:"is a"。
Person
Student
Teacher
水果
苹果
香蕉
橘子

采用假设法。
如果有两个类A,B。只有他们符合A是B的一种,或者B是A的一种,就可以考虑使用继承。

面向对象(继承中成员变量的关系)
* A:案例演示
* a:不同名的变量
* b:同名的变量
面向对象(this和super的区别和应用)(掌握)
* A:this和super都代表什么
* this:代表当前对象的引用,谁来调用我,我就代表谁
* super:代表当前对象父类的引用
* B:this和super的使用区别
* a:调用成员变量
* this.成员变量 调用本类的成员变量,也可以调用父类的成员变量
* super.成员变量 调用父类的成员变量
* b:调用构造方法
* this(...) 调用本类的构造方法
* super(...) 调用父类的构造方法
* c:调用成员方法
* this.成员方法 调用本类的成员方法,也可以调用父类的方法
* super.成员方法 调用父类的成员方法

面向对象(继承中构造方法的关系)
* A:案例演示
* 子类中所有的构造方法默认都会访问父类中空参数的构造方法
* B:为什么呢?
* 因为子类会继承父类中的数据,可能还会使用父类的数据。
* 所以,子类初始化之前,一定要先完成父类数据的初始化。

* 其实:
* 每一个构造方法的第一条语句默认都是:super() Object类最顶层的父类。

面向对象(继承中构造方法的注意事项)
* A:案例演示
* 父类没有无参构造方法,子类怎么办?
* super解决
* this解决
* B:注意事项
* super(…)或者this(….)必须出现在构造方法的第一条语句上

面向对象(继承中成员方法关系)
* A:案例演示
* a:不同名的方法
* b:同名的方法

面向对象(方法重写概述及其应用)
* A:什么是方法重写
* 重写:子父类出现了一模一样的方法(注意:返回值类型可以是子父类,这个我们学完面向对象讲)
* B:方法重写的应用:
* 当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法。这样,即沿袭了父类的功能,又定义了子类特有的内容。
* C:案例演示
* a:定义一个手机类。

面向对象(方法重写的注意事项)
* A:方法重写注意事项
* a:父类中私有方法不能被重写
* 因为父类私有方法子类根本就无法继承
* b:子类重写父类方法时,访问权限不能更低
* 最好就一致
* c:父类静态方法,子类也必须通过静态方法进行重写
* 其实这个算不上方法重写,但是现象确实如此,至于为什么算不上方法重写,多态中我会讲解(静态只能覆盖静态)

* 子类重写父类方法的时候,最好声明一模一样。

面向对象(final关键字修饰类,方法以及变量的特点)
* A:final概述
* B:final修饰特点
* 修饰类,类不能被继承
* 修饰变量,变量就变成了常量,只能被赋值一次
* 修饰方法,方法不能被重写

面向对象(final修饰变量的初始化时机)(掌握)
* A:final修饰变量的初始化时机
* 显示初始化
* 在对象构造完毕前即可

转载于:https://www.cnblogs.com/jiashumiao/p/10363026.html

JAVA学习笔记04相关推荐

  1. Java学习笔记:04面向对象-内部类_访问修饰符_final

    04面向对象-内部类/访问修饰符/final 1.static的介绍 static:关键字,静态的 static的作用是用来修饰类中的成员 2.访问一个类中的某一个成员变量 方法一: _1.创建对象 ...

  2. 【8-22】java学习笔记04

    java基础类库 Scanner类(java.util.scanner) Scanner对象.hasNextXxx(),hasNext()默认方法为字符串://Returns true if this ...

  3. 分水岭算法java,OpenCV 学习笔记 04 深度估计与分割——GrabCut算法与分水岭算法...

    1 使用普通摄像头进行深度估计 1.1 深度估计原理 这里会用到几何学中的极几何(Epipolar Geometry),它属于立体视觉(stereo vision)几何学,立体视觉是计算机视觉的一个分 ...

  4. Java学习笔记(十)--控制台输入输出

    输入输出 一.控制台输入 在程序运行中要获取用户的输入数据来控制程序,我们要使用到 java.util 包中的 Scanner 类.当然 Java 中还可以使用其他的输入方式,但这里主要讲解 Scan ...

  5. JavaWeb黑马旅游网-学习笔记04【BaseServlet抽取】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  6. JavaWeb-综合案例(用户信息)-学习笔记04【删除选中功能】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb-综合案例(用户信息)-学习笔记01[列表查询] JavaWeb-综合案例(用户信息)-学习笔记02[登录功能] JavaWeb-综合案 ...

  7. Java学习笔记Day02

    Java学习笔记Day02 一.细化Hello程序 1.详解代码 //公有的类,叫做Hello public class Hello{//主方法public static void main(Stri ...

  8. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  9. Java学习笔记项目三:开发团队调度软件(尚硅谷)

    JAVA学习笔记开发团队调度软件 ①创建基础组件 Equipment 接口 package august.domain;/*** 设备领取** @author : Crazy_August* @Dat ...

最新文章

  1. 使用SQLServer配置管理器配置SQLServer数据库引擎实例,以便侦听特定的固定1433端口。...
  2. JetsonXavier/Tx2性能测试比对
  3. prometheus 插件node_exporter 启动方式
  4. timestamp 数据类型
  5. 单例模式可以分为懒汉式和饿汉式:     懒汉式单例模式:在类加载时不初始化。     饿汉式单例模式:在类加载时就完成了初始化,所以类加载比较慢,但获取对象的速度快。
  6. interrupt、interrupted 、isInterrupted 区别
  7. mysql unique和key_MYSQL的primary key和unique key的区别
  8. rj45管脚定义_rj45接口定义,rj45插座引脚定义
  9. 由c#事件监听、回调函数引发观察者模式
  10. 阶段5 3.微服务项目【学成在线】_day05 消息中间件RabbitMQ_2.RabbitMQ研究-RabbitMQ介绍...
  11. linux系统调整中文字符,Linux字符模式下中文显示
  12. ArcGIS单波段影像重分类与批处理
  13. 汉仪股份通过注册:年营收2.2亿 谢立群控制公司35%股权
  14. 肝了 10 万字 ,Go 语言保姆级编程教程2021最新版(建议收藏)
  15. 将人力资源HR纳入OKR
  16. cad图层置顶的lisp_CAD图层遮挡,如何将CAD图形进行前置或者后置?
  17. offline RL介绍
  18. Python爆破ZIP文件(支持纯数字数字+字母密码本)
  19. 减少代码重复率的方法
  20. mysql常考50_要想学好SQL语句必会的50题,也是考试常考的点

热门文章

  1. Windows 10 下的OpenVINO Pycharm+Anaconda开发环境配置
  2. Java 多项式求和
  3. 微信公众平台开发:进阶篇(Web App开发入门)
  4. js实现给a href= href赋值
  5. ajax传向前台的html代码里又有事件的时候,绑定事件失败解决方法
  6. 为何Apache下.htaccess不起作用,Linux、Windows详解
  7. C#开发C/S结构如何通信的问题?
  8. [导入]在IE耗时操作中加入进度条或进度框
  9. 直播预告 | 共识、区块链和全球一体化经济
  10. redis学习笔记-持久化