课前问题思考3

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


什么样的方法应该用static修饰?

  • 方法不依赖于类的实例状态。
  • 方法提供的功能与类的实例无关。
  • 工具类方法例如Math类中的max()等方法。

不用static修饰的方法往往具有什么特性?

  • 可以访问和修改变量。
  • 必须通过实例对象调用。
  • 每个方法的调用都与特定对象关联。

Student的getName应该用static修饰吗?

  • 不应该,因为每个人的名字都不一样,getName方法依赖于实例。

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


使用了面向对象分析方法
通过寻找类中与其共性最大有最直接关联的属性和方法来判断属于哪个类或者也可以通过抽取动词和名词以及动宾结构来判断。

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


  • 可以通过包机制反转域名来避免。
    例如:jmu.edu.cn 可以变成cn.edu.jmu
  • 采用驼峰命名法以及避免过于通用的类名

通过功能模块组织包结构,将相关功能的类组织在同一个包里。
以下是借助AI生成的例子

// 控制器层
package com.mycompany.ecommerce.controller;
public class ProductController { }

// 服务层
package com.mycompany.ecommerce.service;
public interface ProductService { }

package com.mycompany.ecommerce.service.impl;
public class ProductServiceImpl implements ProductService { }

// 数据访问层
package com.mycompany.ecommerce.repository;
public interface ProductRepository { }

// 数据模型
package com.mycompany.ecommerce.model.entity;
@Entity
public class Product { }

package com.mycompany.ecommerce.model.dto;
public class ProductDTO { }

// 工具类
package com.mycompany.ecommerce.util;
public class DateUtils { }

// 异常处理
package com.mycompany.ecommerce.exception;
public class ProductNotFoundException extends RuntimeException { }

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


  • 变量名、方法名必须采用驼峰命名法
  • 常量名要全部大写,单词与单词之间要用下划线隔开,力求语义完整。其中,枚举就是特殊的常量类,因此枚举成员也需要大写,并且在单词与单词间通过下划线隔开。
  • 包名要全部使用小写,并且用单数形式。但是类名如果有复数含义,类名可以使用复数形式。
  • 尽量使用完整的单词来命名,避免不规范的缩写造成歧义或者降低可读性。
  • 代码格式
String say = "hello"

运算符的左右必须都有一个空格

if-else 的换行格式

if () {

} else {

}

关键词 if 与括号之间必须有一个空格,括号内的 f 与左括号,0 与右括号不需要空格
注释的双斜线与注释内容之间有且仅有一个空格
方法参数在定义和传入时,多个参数逗号后边必须加空格

  • 所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较。
  • 类成员与方法访问控制从严,变量作用域过大不利于掌控。
posted @ 2025-09-21 17:43  才知风自由  阅读(8)  评论(0)    收藏  举报