• 第三周-自主学习任务-面向对象基础与类的识别


    学习目标

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

    学习任务

    1.观看Java线上课程

    • 视频:3.3-3.7.
    • 重点观看:3.3、3.4、3.7(面向对象-类的设计).

    2.重点:结合视频与预习课件以博客或者帖子的形式完成如下"问题列表",需提交。本次作业基础分1分,最高3分。

    3.尝试完成PTA题集:

    • 编程题:3.1 构造方法与toString,3.2 构造方法与初始化块,3.3 形状。提前完成这3题的同学,实验课上检查后加分。
    • 程序填空题:b3.1
    • 阅读:阿里巴巴Java开发手册 终极版(1.3.0)》中的1.1-1.4.

    问题列表

    static问题

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

    • 当一个方法或者变量需要初始化加载,或者是经常被调用的时候可以加上static
    • 这个静态成员被该类所有的对象所共享
    • 用static修饰的方法可以用类名直接调用,不用的一定要先实例化一个对象然后才可以调用
    • 如果一个成员没用static关键字,那么这个成员是属于对象的,每一个对象都会有一个自己的这个成员
    • 不应该,因为一个学校的学生,姓名属性是不同的

    购物车案例中的类、方法、属性

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

    • 首先要了解系统,用一段文字描述即将要设计的系统及其功能,然后将其中的名词和动词找出来
    • 对于名词,可以考虑是否创建相应的类,或者是某个类的属性
    • 对于动词,分析是否可以当作方法,可以当作哪一个类中的方法
    • 对于购物车来说,具有名称,价格等属性,具有把商品放入购物车,增加或减少商品数量等方法,可分为购物车,商品条目等分析

    项目管理代码

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

    • 使用包管理类,包机制可以将一组相关的类,接口组织起来,提供访问控制,命名空间管理功能
    • Java类库中有很多包,不同的包包含不同功能的类
    • 在不同的包中放置不同的类,把不同的类放入相对应的包中

    阿里巴巴Java开发手册编程规范

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

    命名规范

    • 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束
    • 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式,要求使用正确的英文拼写和语法
    • 类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:DO / BO / DTO / VO / AO
    • 方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式
    • 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
    • 抽象类命名使用 Abstract 或 Base 开头
    • 异常类命名使用 Exception 结尾;
    • 测试类命名以它要测试的类的名称开始,以 Test 结尾
    • 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。
    • 接口类中的方法和属性不要加任何修饰符号(public 也不要加),保持代码的简洁性,并加上有效的 Javadoc 注释

    代码格式

    • 大括号的使用约定
      • 如果是大括号内为空,则简洁地写成{}即可,不需要换行
      • 如果是非空代码块则:
        • 左大括号前不换行。
        • 左大括号后换行。
        • 右大括号前换行。
        • 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。
    • 左小括号和字符之间不出现空格;同样,右小括号和字符之间也不出现空格
    • if/for/while/switch/do 等保留字与括号之间都必须加空格
    • 任何二目、三目运算符的左右两边都需要加一个空格


    • 换行原则
      • 单行字符数限制不超过 120 个,超出需要换行
      • 第二行相对第一行缩进 4 个空格,从第三行开始,不再继续缩进
      • 运算符与下文一起换行。
      • 方法调用的点符号与下文一起换行。
      • 方法调用时,多个参数,需要换行时,在逗号后进行。
      • 在括号前不要换行
      • 方法参数在定义和传入时,多个参数逗号后边必须加空格

    OOP规范

    • 避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可
    • 所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较
    • 定义 DO/DTO/VO 等 POJO 类时,不要设定任何属性默认值
    • 循环体内,字符串的连接方式,使用 StringBuilder 的 append 方法进行扩展
  • 相关阅读:
    Java基础教程——模拟B/S结构的服务器
    Java基础教程——Socket编程
    Java基础教程——模拟浏览器发送请求
    Java基础教程——网络基础知识
    Java基础教程——线程通信
    Java基础教程——线程局部变量
    Java基础教程——线程同步
    Java基础教程——线程池
    Java基础教程——线程状态
    Java基础教程——多线程:创建线程
  • 原文地址:https://www.cnblogs.com/Huangjing-2920/p/15327956.html
Copyright © 2020-2023  润新知