课前问题回答
1.什么样的方法应该用static修饰?不用static修饰的方法往往具有什么特性?Student的getName应该用static修饰吗?
1.1什么样的方法应该用static修饰?
使用static修饰的方法通常是一些不依赖于类的实例状态的方法,主要用于工具类或功能方法。比如,计算、转换等功能,不需要对象状态的情况下,可以使用static。
1.2不用static修饰的方法往往具有什么特性?
不使用static修饰的方法通常依赖于实例的属性,即需要访问或修改对象的状态。
1.3Student的getName方法应该用static修饰吗?
不应该使用static修饰,因为Student的getName方法是用于返回特定学生实例的名字,它依赖于具体对象的状态。
2.购物车案例中,使用了什么方法将问题描述中的类、方法、属性找出来?方法与属性到底属于哪个类,要怎么判定呢?
2.1.购物车案例中,使用了什么方法将问题描述中的类、方法、属性找出来?
先了解整个案例,找出主要实体(如购物车、商品、用户等),根据主要名词找出对应的类,再去根据类的特征或状态(如商品的名称、价格)对应属性,用类的行为或功能(如添加商品、计算总价)对应方法。
2.2方法与属性到底属于哪个类,要怎么判定呢?
要判定方法与属性属于哪个类,需要具体考虑它们的职责和功能,如User类的username属性表示用户的用户名,因此它属于User类。
3.一个项目中有很多类。怎样才能避免你项目中的类与别人编写的类同名呢?项目中类各种各样要怎么管理这些代码呢?举例说明。
3.1为了避免项目中的类与他人编写的类同名,可以采取以下几种方法:
(1) 命名空间:命名空间是避免类名冲突的有效手段。通过将类放入不同的命名空间中,即使类名相同,由于它们位于不同的命名空间下,也不会发生冲突。
(2) 前缀或后缀:为类名添加特定的前缀或后缀,比如在项目中所有类前加项目缩写,如MyAppUser
。
3.2为了更好地管理各种各样类里的代码,可以采取以下几种方法:
(1) 模块化:将类组织成模块或功能组件,每个模块负责特定功能,便于管理和维护。
(2) 文档化:编写详细的文档来描述项目的结构、类的作用和用法等。
举例:如果有一个用户类,你可以命名为MyAppUser
,而不是简单的User
,这样在其他库中出现的User
类就不会产生冲突。同时,可以将所有与用户相关的类放在user
模块中,便于查找和维护。
4.阅读《阿里巴巴Java开发手册 终极版(1.3.0)》,写出至少7条Java编程规范。应包含如下几个方面:变量命名、类命名、方法命名、常量命名、包命名、代码格式、OOP规约。
-
变量命名:变量名应使用小写字母开头的驼峰命名法,如
userName
,并尽量具描述性。 -
类命名:类名应使用大写字母开头的驼峰命名法,如
OrderService
,并且应为名词或名词短语。 -
方法命名:方法名应使用小写字母开头的驼峰命名法,如
calculateTotal
,通常应为动词或动词短语。 -
常量命名:常量名应使用全大写字母,单词之间用下划线分隔,如
MAX_VALUE
。 -
包命名:包名应使用小写字母,通常以公司域名反向书写开头,如
com.example.project
。 -
代码格式:保持良好的缩进和空格使用,建议每级缩进使用4个空格,避免使用制表符。
-
OOP规约:应优先使用接口而不是抽象类,保持代码的灵活性和可扩展性,同时遵循单一职责原则。