第三周-自主学习任务-面向对象基础与类的识别
学习目标
- 重点:掌握pivate、public关键字的用途及其与setter/getter模式和封装性之间的关系。
- 理解static属性与static方法的用途。
- 掌握使用初始化块初始类的方法。掌握初始化块与静态初始化块的区别。
4.掌握使用我package管理类。
5.重点:学会识别问题中的类并定义解决问题所需要的类。
6.初步了解Java编程规范。
学习任务
- 观看(Java线上课程 http://www.xueyinonline.com/detail/218804544)
- 视频:3.3-3.7.
- 重点观看:3.3、3.4、3.7(面向对象-类的设计).
- 重点:结合视频与预习课件以博客或者帖子的形式完成如下"问题列表",需提交。本次作业基础分1分,最高3分。
- 尝试完成PTA题集:
- 编程题:3.1 构造方法与toString,3.2 构造方法与初始化块,3.3 形状。提前完成这3题的同学,实验课上检查后加分。
- 程序填空题:b3.1
- 阅读:阿里巴巴Java开发手册 终极版(1.3.0)》中的1.1-1.4.
问题列表
1. 什么样的方法应该用static修饰?不用static修饰的方法往往具有什么特性?Student的getName应该用static修饰吗?
- 当一个方法需要初始化加载或者经常被调用的时候可以加上 static,被 static 修饰的方法可以用类名直接调用,不用实例化一个对象后才调用
- 没有用static修饰的方法可以直接调用其他的静态方法和非静态方法
- Student的getName不应该用static修饰,因为其name为非静态属性
2. 购物车案例中,使用了什么方法将问题描述中的类、方法、属性找出来?方法与属性到底属于哪个类,要怎么判定呢?
![](https://img2020.cnblogs.com/blog/2160686/202109/2160686-20210923193917304-1939703078.png)
找到相应的主语来判断方法和属性属于哪个类
3. 一个项目中有很多类,项目中要怎么管理这些代码呢?
- 根据不同的功能和种类进行分包,将同一类的类放入同一包下
4. 阅读《阿里巴巴Java开发手册 终极版(1.3.0)》,写出至少7条Java编程规范。应包含如下几个方面:变量命名、类命名、方法命名、常量命名、包命名、代码格式、OOP规约。
- 变量命名:代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束,使用 lowerCamelCase 风格,必须遵从驼峰形式,首单词小写,后单词大写
- 类命名:名使用 UpperCamelCase风格,必须遵从驼峰形式,全部单词大写
- 方法命名:使用 lowerCamelCase 风格,必须遵从驼峰形式,首单词小写,后单词大写
- 量命名:常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长
- 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。
- 大括号的使用约定:如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果是非空代码块则:左大括号前不换行、左大括号后换行、右大括号前换行、右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。if/for/while/switch/do 等保留字与括号之间都必须加空格。方法参数在定义和传入时,多个参数逗号后边必须加空格。单行字符数限制不超过 120 个,超出需要换行。
- OOP规约:
- 避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成
本,直接用类名来访问即可。
- 所有的覆写方法,必须加@Override 注解。
- 相同参数类型,相同业务含义,才可以使用 Java 的可变参数,避免使用 Object。
- 外部正在调用或者二方库依赖的接口,不允许修改方法签名,避免对接口调用方产生
影响。接口过时必须加@Deprecated 注解,并清晰地说明采用的新接口或者新服务是什么。
- 不能使用过时的类或方法。
- Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用
equals。
正例:"test".equals(object);
反例:object.equals("test");
- 所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较。
- 构造方法里面禁止加入任何业务逻辑,如果有初始化逻辑,请放在 init 方法中。
原文地址:https://www.cnblogs.com/lzwx2/p/15325710.html