zoukankan      html  css  js  c++  java
  • 第三周-自主学习任务-面向对象基础与类的识别

    学习目标

    1. 重点:掌握pivate、public关键字的用途及其与setter/getter模式和封装性之间的关系。
    2. 理解static属性与static方法的用途。
    3. 掌握使用初始化块初始类的方法。掌握初始化块与静态初始化块的区别。
      4.掌握使用我package管理类。
      5.重点:学会识别问题中的类并定义解决问题所需要的类。
      6.初步了解Java编程规范。

    学习任务

    1. 观看(Java线上课程 http://www.xueyinonline.com/detail/218804544)
    • 视频:3.3-3.7.
    • 重点观看:3.3、3.4、3.7(面向对象-类的设计).
    1. 重点:结合视频与预习课件以博客或者帖子的形式完成如下"问题列表",需提交。本次作业基础分1分,最高3分。
    2. 尝试完成PTA题集:
    • 编程题:3.1 构造方法与toString,3.2 构造方法与初始化块,3.3 形状。提前完成这3题的同学,实验课上检查后加分。
    • 程序填空题:b3.1
    1. 阅读:阿里巴巴Java开发手册 终极版(1.3.0)》中的1.1-1.4.

    问题列表

    1. 什么样的方法应该用static修饰?不用static修饰的方法往往具有什么特性?Student的getName应该用static修饰吗?

    • 当一个方法需要初始化加载或者经常被调用的时候可以加上 static,被 static 修饰的方法可以用类名直接调用,不用实例化一个对象后才调用
    • 没有用static修饰的方法可以直接调用其他的静态方法和非静态方法
    • Student的getName不应该用static修饰,因为其name为非静态属性

    2. 购物车案例中,使用了什么方法将问题描述中的类、方法、属性找出来?方法与属性到底属于哪个类,要怎么判定呢?


    • 找到相应的主语来判断方法和属性属于哪个类

    3. 一个项目中有很多类,项目中要怎么管理这些代码呢?

    • 根据不同的功能和种类进行分包,将同一类的类放入同一包下

    4. 阅读《阿里巴巴Java开发手册 终极版(1.3.0)》,写出至少7条Java编程规范。应包含如下几个方面:变量命名、类命名、方法命名、常量命名、包命名、代码格式、OOP规约。

    1. 变量命名:代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束,使用 lowerCamelCase 风格,必须遵从驼峰形式,首单词小写,后单词大写
    2. 类命名:名使用 UpperCamelCase风格,必须遵从驼峰形式,全部单词大写
    3. 方法命名:使用 lowerCamelCase 风格,必须遵从驼峰形式,首单词小写,后单词大写
    4. 量命名:常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长
    5. 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。
    6. 大括号的使用约定:如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果是非空代码块则:左大括号前不换行、左大括号后换行、右大括号前换行、右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。if/for/while/switch/do 等保留字与括号之间都必须加空格。方法参数在定义和传入时,多个参数逗号后边必须加空格。单行字符数限制不超过 120 个,超出需要换行。
    7. OOP规约:
    • 避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成
      本,直接用类名来访问即可。
    • 所有的覆写方法,必须加@Override 注解。
    • 相同参数类型,相同业务含义,才可以使用 Java 的可变参数,避免使用 Object。
    • 外部正在调用或者二方库依赖的接口,不允许修改方法签名,避免对接口调用方产生
      影响。接口过时必须加@Deprecated 注解,并清晰地说明采用的新接口或者新服务是什么。
    • 不能使用过时的类或方法。
    • Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用
      equals。
      正例:"test".equals(object);
      反例:object.equals("test");
    • 所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较。
    • 构造方法里面禁止加入任何业务逻辑,如果有初始化逻辑,请放在 init 方法中。
  • 相关阅读:
    异常处理
    面向对象 -- 内置方法
    面向对象 -- 反射(详细)
    面向对象 -- 反射
    面向对象 -- 三大特性之封装
    pickle模块 collections模块在面向对象中的应用
    面向对象 -- 三大特性之多态
    Third Week(补充完整)
    Second Week(补充完整)
    First Week (补充完整)
  • 原文地址:https://www.cnblogs.com/lzwx2/p/15325710.html
Copyright © 2011-2022 走看看