2024-09:Java预习三:面向对象入门2与类的识别

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

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

答:(1)应该用static修饰的方法
工具方法:当方法的功能不依赖于类的任何实例变量,并且仅依赖于输入参数的方法例如Math类。
访问静态变量:如果方法需要访问或修改类的静态变量。
(2)不用static修饰的方法依赖于类的实例具有实例依赖,支持多态性,并且不用static修饰的方法的行为可能依赖于对象的状态(即实例变量的值)。
(3)Student类的getName方法不应该被声明为static。因为getName方法是用来获取某个特定学生(即Student类的实例)的名字的。这个名字生的属于学生的实例状态,也是学生所特有的标识,而不是类本身的状态。
如果getName方法被声明为static,那么它将无法直接访问任何实例变量,除非是将这些变量都声明为static,但是这也意味着所有Student实例将共享同一个名字,如果一个学生的名字发生改变,就会影响所有学生的名字

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

(1)使用的是面向对象分析的方法将问题中描述的类、方法、属性找出来
(2)
【1】方法判定:
行为归属:考虑该方法描述的行为是由哪个对象来执行的。例如,“添加商品到购物车”这个行为显然是由购物车来执行的,所以这个方法应该属于购物车类。
访问控制:考虑方法需要访问哪些属性。如果方法需要访问某个类的私有属性,那么这个方法很可能就属于那个类。例如:访问商品名称就要访问到商品类。
【2】属性判定:
数据归属:考虑这个数据是描述哪个对象的。例如,价格显然是描述商品的,所以价格应该是商品类的一个属性。
封装性:属性通常被封装在类中,以隐藏细节并保护数据。考虑哪些数据应该被一起封装,以形成一个有意义的对象。

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

(1)【1】使用命名规范
命名约定:为不同层次的类或模块制定明确的命名规范。
【2】模块化设计
将代码划分为模块或包,每个模块或包负责项目的一部分功能。
(2)【1】依赖管理
对于使用第三方库的项目,确保使用正确的依赖管理工具来管理项目
【2】使用IDE和代码管理工具
IDE(集成开发环境):大多数现代IDE都提供了重构、类重命名等功能,这些功能可以帮助我们管理项目中的类。
例如:假设我们正在开发一个新店商品管理项目,其中包含多个模块,如商品管理、进货管理等。
商品管理模块:可以放在product包下,包含Product.java等类。
订单管理模块:可以放在order包下,包含Order.java等类。

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

(1)变量命名
变量名命名应该是首字母小写,后续单词首字母大写。
示例:studentName
(2)类命名
类名命名应该是每个单词的首字母都大写。
示例:StudentName
(3)方法命名
方法名命名应该是首字母小写,通常根据方法的功能进行命名,遵循动词或动词+名词的形式。
示例:getUserInfo()
(4)常量命名
常量名应全部大写,单词间使用下划线分隔。
示例:MIN_NAMES
(5)包命名
包名应全部小写,使用点(.)分隔,按组织、项目、模块、功能等层级进行划分。
示例:com.alibaba.project.module.service。
(6)代码格式
缩进:使用4个空格进行缩进,不使用制表符(Tab)。
大括号风格:左大括号 { 不换行,右大括号 } 单独成行,除非后面紧跟 else、while 等关键字。
行宽:建议每行代码不超过120个字符,超过时应适当换行。
示例:

public class Main {  
    public static void main(String[] args){  
        if (condition) {  
        } else {  
        }  
    }  
}

(7)OOP规约
遵循单一职责原则:一个类应该仅负责一组相对独立的功能。
使用接口隔离原则:不应该强迫客户依赖于它们不使用的方法。
依赖倒置原则:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
里氏替换原则:子类对象能够替换父类对象被使用在父类对象的地方,而软件系统的功能不受影响。
迪米特法则(最少知识原则):一个对象应该对其他对象保持最少的了解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值