JAVA:第01周 预习作业


面向对象入门2与类的识别

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

1.应该使用static修饰的方法
工具方法:如果一个方法不需要访问任何实例变量,并且它的行为不依赖于对象的状态,那么它可以被声明为static。例如,数学计算方法。
工厂方法:如果方法用于创建类的一个实例,并且不依赖于任何实例变量,那么它可以被声明为static。
实用程序方法:如果方法是通用的,不依赖于任何特定对象的状态,那么它应该被声明为static。
常量访问器:如果方法是用于访问常量值,那么它应该被声明为static。

2.不用static修饰的方法具有以下特性
访问实例变量:这些方法通常需要访问或修改对象的实例变量。
依赖对象状态:它们的行为可能会根据对象的当前状态而有所不同。
多态性:非静态方法可以被覆盖,以提供不同子类中的不同实现。

3.不应该,getName方法需要访问特定Student对象的实例变量(例如,一个名为name的变量),所以它不应该被声明为static。

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

1.

【1】需求分析:
首先需要对购物车的需求进行详细分析,理解其功能、行为和约束。
【2】识别名词:
在需求描述中寻找名词,这些名词通常代表可能的类或属性。例如,“产品”、“购物车”、“订单”等。
【3】识别动词和动作:
寻找动词或动作短语,这些通常代表方法或行为。例如,“添加到购物车”、“移除产品”、“计算总价”等。
【4】定义类:
根据名词识别出类,并为每个类定义属性(名词的修饰词)和方法(动词或动作短语)。
【5】确定关系:
确定类与类之间的关系,如关联、聚合或继承。

2

属性通常属于其描述的实体类,如果一个属性描述的是某个类的特征,那么它应该属于那个类。方法通常属于执行该行为的类,如果一个方法操作的是某个类的数据,那么它应该属于那个类。


三、一个项目中有很多类。怎样才能避免你项目中的类与别人编写的类同名呢?项目中类各种各样要怎么管理这些代码呢?举例说明。

1.避免类名冲突的策略:
【1】使用包(Packages):
【2】遵守命名约定:
【3】使用内部类:

package com.yourcompany.ecommerce.model;
public class Product {

}

2.管理项目中的类:
【1】模块化:
将代码分成多个模块或包,每个模块或包负责不同的功能。例如,将数据库操作、业务逻辑和用户界面代码分别放在不同的包中。
【2】使用设计模式:
应用设计模式可以增加代码的可维护性和可扩展性。例如,使用单例模式来确保一个类只有一个实例,或者使用工厂模式来创建对象。
【3】文档和注释:
为每个类和公共方法编写清晰的文档和注释,这有助于其他开发者理解代码的功能和用法。

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

1.变量命名:
【强制】变量命名应使用驼峰命名规则,并且力求语义表达完整、清晰。例如,表示用户数量的变量应该命名为userCount,而不是简写为uc。
2.类命名:
【强制】类名使用大写字母开头的驼峰命名规则,且名词应为复数形式或表达完整意义的英文词组。例如,表示用户信息的类应该命名为UserInfo,而不是User或UserInfomation。
3.方法命名:
【强制】方法名以小写字母开头,使用驼峰命名规则,动词前面可以使用形容词或副词来修饰,力求表达清晰。例如,获取用户信息的方法应该命名为getUserInfo,而不是getUser或getUserInfomation。
4.常量命名:
【强制】常量命名全部大写,单词间用下划线分隔。力求表达完整且语义清晰。例如,表示最大用户数量的常量应该命名为MAX_USER_COUNT。
5.包命名:
【强制】包名统一使用小写字母,点分隔符之间有且仅有一个自然语义的英文单词。包名统一使用单数形式,并且由公司名(或顶级域名)+项目名+模块名组成。例如,com.alibaba.ecommerce.cart。
6.代码格式:
【推荐】单行字符数不超过120个,超出需要换行,换行时遵循以下原则:第二行相对第一行缩进4个空格,从第三行开始,不再继续缩进,参考示例。
7.OOP规约:
【强制】避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器的解析成本,直接用类名来访问即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值