• 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

  • 相关阅读:
    HDU 1301 Jungle Roads
    HDU 1671 Phone List
    HDU 1992 Tiling a Grid With Dominoes
    HDU 1251 统计难题
    总结自己的近期表现
    Windows API 函数: SetClassLong
    ModifyStyle
    assert,assert_valid,verify,trace用法
    用VC++绘制位图按钮
    Codeforces 144D. Missile Silos 最短路
  • 原文地址:https://www.cnblogs.com/buzhouke/p/14355166.html
Copyright © 2020-2023  润新知