一、封装
1.使用步骤      2.优点     3.包结构     4.访问修饰符
二、继承
1.理解      2.重写     3.final的详解     4.防止被继承的两种方法
三、多态
1.什么是多态      2.多态的应用     3.两种转型     4.扩展:instanceof的详解

一、封装

1.使用步骤

(1)第一步

将成员变量声明为 private 私有

private int a;
(2)第二步

对外提供get和set方法(idea快捷键:alt+insert)

public int getA() {return a;
}
public void setA(int a) {this.a = a;
}

通过get/set方法来访问和设置成员变量,相对来说更加安全,程序耦合度也更低。

2.优点

  • 便于使用者正确使用系统,防止错误修改属性
  • 有助于系统之间的松耦合,提高系统独立独立性
  • 提高软件的可重用性
  • 降低了构建大型系统的风险

3.包结构

(1)规则规范
  • package必须是程序中可执行的第一行代码
  • package语句只能有一句
  • package命名要求包含的所有字符均为小写,同时不能有特殊字符
  • package语句后面的分号不要掉
  • 如果定义类的时候没有使用package,那么java就认为我们所定义的类位于默认包里面(default package)
(2)一般结构

个人:

完成方式 包结构
多人完成 indi.发起者名.项目名.模块名*.*.*
独自完成(公开) pers.个人名.项目名.模块名*..
独自完成(非公开) perv.个人名.项目名.模块名*..

团队或公司:

完成方式 包结构
团队完成 team.团队名.项目名.模块名*..
公司完成 com.公司名.项目名.模块名*..

4.访问修饰符

(1)类的访问修饰符
修饰符 说明
public 对外公开,同工程下所有位置可访问
默认不写 只能在所在包访问
(2)成员(属性和方法)的访问修饰符
修饰符 说明
private 私有的,只能在该类里访问
默认不写 只能在所在包访问
protected 受保护的,同一个包的子类可以访问
public 对外公开,同工程下所有位置可访问

上图中:受保护的情况(protected) :子类必须在同一个包中。

二、继承

继承使用 extend 关键字。

继承是两个类之间产生关联关系的唯一的方式。

子类构造方法会默认调用父类构造方法。

为多态提供了前提。

Java只支持单继承:一个子类只能有一个直接父类。

1.理解(两个方面)

  • 在多个子类中抽取出相同的属性和方法,形成父类的属性和方法
  • 对父类成员的继承使用(包含成员属性和成员方法)

2.重写(覆盖)与重载

(1)重写(覆盖)

子类方法和父类方法同名,子类方法会覆盖父类方法。

前提:子类方法访问权限必须大于或等于父类方法的访问权限

(2)重载

(详见于类与对象笔记)
面向对象(一):类与对象

3.final的详解

位置 说明
修饰变量 变量变为常量,不可修改
修饰方法 方法不能被重写,保证安全稳定
修饰类 类不能被继承,防止方法被覆盖

4.防止被继承的两种方法

(1)方法一

将类用 final 修饰

public final class Clothes {// 将类用 final 修饰
}
(2)方法二

将构造方法声明为私有

public class Clothes {private Clothes(){// 将构造方法声明为私有}
}

三、多态

1.什么是多态

把子类的实例化对象赋值给父类的引用类型。

通俗的理解:父类作为形参,子类类型作为实参。
多态:父类的万子千孙的状态。

2.多态的应用

(1)父类作为方法的形参(最常用)
public void test(Object obj){...
}
(2)父类作为方法的返回值
public Object test(){...return obj;
}

3.两种转型

(1)向上转型
Fu fu = new Zi();
(2)向下转型
Zi zi = (Zi)fu;

4.扩展:instanceof的详解

(1)使用格式
// 对象 instanceof 类
zi instanceof Fu;//返回true
(2)使用解析

instanceof 返回一个布尔值来指出左边对象是否属于右边类或右边类的父类。

小汤学编程之JAVA基础day07——面向对象(二):封装、继承与多态相关推荐

  1. 小汤学编程之JAVA基础day08——面向对象(三):抽象类与接口

    一.抽象类 1.抽象类的由来      2.几点注意     3.语法规则 二.接口 1.定义方式      2.属性和方法 三.总结 一.抽象类 1.抽象类的由来 "用进废退", ...

  2. 小汤学编程之JAVA基础day06——面向对象(一):类与对象

    一.类 1.类的属性      2.类的方法     3.类的分类     4.类的创建     5.扩展:成员变量和局部变量 二.对象 1.对象的创建      2.对象的使用 一.类 类就是一类事 ...

  3. 小汤学编程之JAVA基础day11——集合框架:List/Set/Map集合、Collections集合工具类、泛型、TreeMap和TreeSet

    一.集合的特点 二.继承结构图 三.List集合 1.特点     2.ArrayList类     3.LinkedList类     4.两者的对比     5.集合的遍历 四.Set集合 1.特 ...

  4. 小汤学编程之JAVA基础day12——异常

    一.什么是异常 1.程序错误类型     2.异常的分类     3.深入认识异常 二.异常的继承结构 三.常见的异常收集 四.虚拟机对异常的两种处理方式 1.捕获异常     2.声明和抛出异常 五 ...

  5. 小汤学编程之JAVA基础day05——数组

    一.概念 1.什么是数组      2.为什么要用到数组 二.使用方法 1.声明并分配空间      2.赋值     3.处理数据 三.数组的各种应用 1.求数组中最大/最小值      2.数组反 ...

  6. 小汤学编程之JAVA基础day04——流程结构

    一.认识流程图 二.顺序结构 三.选择结构 四.循环结构 五.扩展&代码块的概念 一.认识流程图 二.顺序结构 体现在程序进入某个方法后,从上到下没有分支的顺序执行. 三.选择结构 1.if选 ...

  7. 小汤学编程之JAVA基础day02——数据类型、Scanner类的使用

    一.JAVA的数据类型 1.变量      2.常量     3.基本数据类型     4.引用数据类型     5.数据类型转换 二.Scanner类的使用 1.作用      2.引入     3 ...

  8. 小汤学编程之JAVA基础day15——枚举、注解和Properties

    一.枚举 1.枚举的来由     2.枚举的作用     3.枚举的特点     4.扩展:switch里可以传入哪些类型的值 二.注解 1.作用     2.注解的种类     3.自定义注解    ...

  9. 小汤学编程之JAVA基础day14——xml和反射

    一.xml 1.简介     2.特点     3.使用步骤 二.Reflect反射 1.概念     2.理解Class类     3.反射的功能     4.两个案例 一.xml 1.简介 xml ...

最新文章

  1. hql调用mysql存储过程_hibernate调用mysql存储过程
  2. yum安装Imagick及扩展
  3. vue组件的基本使用:入门示例
  4. ERP Configurable product不会被CRM中间件下载
  5. Sales Organization with Fiscal Year
  6. 5.深度学习练习:Deep Neural Network for Image Classification: Application
  7. python装饰器之函数作用域
  8. go interface 转 string_深入理解Go的interface内部执行原理
  9. 简单实用的微信缓存框架mmkv
  10. iReport表达式
  11. Nginx基础篇-Nginx的编译参数
  12. 【炼数成金 NOSQL引航 一 】 进入NoSQL世界;NoSQL与SQL的战争
  13. java颜色识别_Java颜色检测
  14. linux虚拟机扩展磁盘
  15. Ubuntu下.py文件的运行
  16. 计算机系统结构知识总结,计算机基础知识总结
  17. 分布式链路追踪Jaeger快速入门-01
  18. Kafka整体架构图解
  19. 我的保研之旅——北京航空航天大学、北理工、南大
  20. 园林智能灌溉方案优势

热门文章

  1. fastJson null字符串转空 null数字转0
  2. 003 HandlerMapping
  3. String转换成int型
  4. 我也属于80这个年代
  5. 对抗学习新进展:MIT和微软联合出品“元对抗扰动”
  6. 北京 | 阿里摩酷实验室 招聘 研究型实习生/社招
  7. 模型秒变API只需一行代码,支持TensorFlow等框架
  8. CVPR 2019 | 今日新出14篇论文汇总(来自微软、商汤、腾讯、斯坦福等)
  9. 【OpenCV】OpenCV实战从入门到精通之 -- 基本图像绘制
  10. jsp页面适应手机屏幕_HTML5之页面缩放 viewport