0129集训授课——面向对象思想(一):封装与抽象

0129集训授课——面向对象思想(一):封装与抽象

集训的课程安排:

1、Java前置知识学习 什么是Java Java的由来与发展 Java能做什么(语言漫谈,语言的本质是一种约束) 为什么要学Java? Java JDK安装(顺带讲一下Java运行机制) Java环境变量配置 Java利器——idea 安装与使用

2、 Java基础1: 注释 标识符和关键字 数据类型(基本类型、引用类型) 类型转化 Scanner类讲解 简单的helloword程序

3、Java基础2: 变量、常量、作用域 基本运算符(加减乘除、取余、逻辑运算符) 流程控制(if、switch、while、do-while、for、增强for循环(如果可以,原理也可以讲下)、break、continue、goto等等) (作业可以类似于打印九九乘法表)

4、 Java基础3: 包机制 方法(什么是方法、定义与使用、方法的重载、可变参数的传递) 数组(什么是数组、数组的声明与创建、二维数组)

5、 面向对象1(封装与抽象):封装(何为封装、为何要封装、封装的简单案例) 类和对象的创建 构造器的使用 创建简单的对象类并赋予相应方法

6、面向对象2(继承与接口):问题引入(给定一个场景,引导思考,紧接着引出继承) Java的继承机制 抽象类和抽象方法(abstract) 面向接口编程(接口是什么,怎么用接口,使用接口的好处) 继承与接口的区别

问题思考

1、什么是面向对象?

2、什么是对象?

一系列行为与属性的一个集合

3、面向对象的程序设计与面向过程的程序设计有什么区别?

问题与模型

4、当我们谈及面向对象时,我们所关心的是什么?

面向对象的编程有三大特性:封装、继承和多态。

而我们今天聚焦于封装

由String类引入封装

大家前几天上课都着重于Java的基础语法,其中在讲数据类型时,应当是区分了基本类型与引用类型,其中,用的最多的引用类型,就是String

//ctrl+B跳转查看Java源码。

如何去创建一个类?-》构造器,”this“

如何去设计一个类?

如何去封装一个类?

知识储备

this关键字

构造器

  • 构造函数名称必须与其类名称相同

  • 构造函数必须没有显式返回类型

构造器分为两种:

  1. 默认构造函数(无参数构造函数)

  2. 参数化构造函数

修饰符

修饰符/位置 类内部 本包 子类 外部包
public
protected ×
default × ×
private × × ×

不那么”面向对象“的设计——static关键字

static静态代码块:

执行顺序:静态代码块->非静态代码块->构造函数

import static:

import static java.lang.Math.*;

public class StaticImportTest {
    public static void main(String[] args) {
        // out是java.lang.System类的静态成员变量,代表标准输出
        // PI是java.lang.Math类的静态成员变量,表示π常量
        out.println(PI);
        // 直接调用Math类的sqrt静态方法,返回256的正平方根
        out.println(sqrt(256));
    }
}

作业

1、设计两个类,每个类中需要有三个以上属性,get,set方法,构造器,以及额外定义三个以上的方法,思考这两个类之间如何交互,最好能体现在代码里面。

2、(可选)补全,回答本md中的问题,因为金昊霖组长要求集训课程需要写博文,所以~~,大家可以完善一下然后写的比较优秀的就作为今天课程的博文啦。

提交要求

提交md格式文件,其中以名字+日期+“面向对象思想(一)”命名,里面需要涵盖作业1代码,代码运行截图。在1月30日中午12:00前发送到1781738565@qq.com 。

(图床大家会用了叭,md语法也应该比较熟悉了)

Reference

https://github.com/LingCoder/OnJava8/blob/master/docs/book/07-Implementation-Hiding.md

posted @ 2021-02-01 09:47  不周客  阅读(187)  评论(2编辑  收藏  举报