当前位置: 首页 > news >正文

课前问题思考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 方法比较。
  • 类成员与方法访问控制从严,变量作用域过大不利于掌控。
http://www.hskmm.com/?act=detail&tid=12182

相关文章:

  • 在CentOS上配置SVN至Web目录的自动同步
  • AIGC在游戏开发中的革命性影响:从生产效率到体验创新 - 详解
  • 使用Docker配置并连接HBase的Java API
  • 在Linux环境下安装和卸载DMETL5数据迁移工具
  • 赛前训练3 欧拉路
  • SQL小贴式: 用NOT EXISTS 而不是 NOT IN !!!
  • 手撕大模型|FlashAttention 原理及代码解析
  • react工程化
  • CF700E Cool Slogans 做题记录
  • 完整教程:在 Ubuntu 上安装和配置 PostgreSQL 实录
  • 一个MCU与FPGA混合电路上电启动的问题及其解决办法探索[原创www.cnblogs.com/helesheng]
  • JMX与RMI
  • 通过主机监控发现路径遍历漏洞的实战技巧
  • Code New Roman 字体的正确下载方式
  • 多态是对于处理不同的变量,但是使用相同或者类似的方式。多态核心分为两种形式:编译时多态(静态多态)和运行时多态(动态多态)C++中多态通常使用虚函数或者指针(引用)实现。
  • 从 C++ 到 Python
  • Nipper 3.9.0 for Windows Linux - 网络设备漏洞评估
  • c++单例实践
  • NOIP 模拟赛九
  • 个人项目-软件工程第二次作业 - Nyanya-
  • 详细介绍:互联网医院品牌IP的用户体验和生态构建
  • 支持 SSL 中等强度密码组(SWEET32) - 漏洞检查与修复
  • C# WPF CommunityToolkit.MVVM (测试一)
  • linux kernel synchronization rcu
  • 锁定Nvidia驱动版本
  • 第二十一章-sql 注入-union 联合注入 (1)
  • Android开发参考
  • 求出e的值
  • 线段树
  • CSP-S模拟24