第三周-自主学习任务-面向对象基础与类的识别
什么样的方法应该用static修饰?
**当一个方法或者变量需要初始化加载,或者是经常被调用的时候可以加上static**
static
方法属于类,不属于类的实例对象
static
方法不需要实例对象就可以通过类名调用,且static
方法中不能有实例成员(即实例方法或实例变量)
用static
修饰的方法可以用类名直接调用,不用的一定要先实例化一个对象然后才可以调用
如果static
是写在单例中,高并发访问是会出问题的,这时候就要设置线程等待了,static
是在容器加载的时候就已经加载到内存中,所以static
方法和变量不宜过度使用,有选择的使用。
如果你需要通过计算来初始化你的static
变量,你可以声明一个static
块,Static
块
仅在该类被加载时执行一次。
不用static修饰的方法往往具有什么特性?
非static
方法属于类的实例对象,不属于类
非static方法中可以以后static成员(即static方法,和static变量)
总结
static修饰的方法,变量都属于该类本身,是该类所有,该类的实例也可以访问static修饰的成员,
但是不同实例对象中访问的static成员是同一个(在同一程序中)…所以说static成员在一个程序中是独
一无二的,他属于类,而类在程序中只能有一个类(可以由多个类的实例对象),所以程序中的static成员
永远是同一个!
Student的getName应该用static修饰吗?
Student的getName不应该用static修饰,因为学生的名字只属于他个人。
购物车案例中,使用了什么方法将问题描述中的类、方法、属性找出来?方法与属性到底属于哪个类,要怎么判定呢?
首先区分名词和动词
找出其中的名词:看能否建立相应的类或属性。
找出其中的动词:分析是否可以作为方法,并进一步分析该方法属于哪个类。
方法与属性具体属于哪一个类,要看该类是否有这种属性或方法,如果某个类中有某种属性或方法,那么这种属性或方法就该属于这个类。
一个项目中有很多类。项目中要怎么管理这些代码呢?
管理类需要用到package包,运用包对类进行分装。根据不同的功能和种类进行分包,将同一类的类放入同一包下,这样可以防止冲突,即使要调用其他包也是很方便。
阅读《阿里巴巴Java开发手册 终极版(1.3.0)》,写出至少7条Java编程规范。应包含如下几个方面:
- 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束
- 对于 Service 和 DAO 类,基于 SOA 的理念,暴露出来的服务一定是接口,内部
的实现类用 Impl 的后缀与接口区别。类名如果有复数含义,类名可以使用复数形式。 - 方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写
- 常量命名:不允许任何魔法值(即未经定义的常量)直接出现在代码中。
5.包命名统一使用小写,单数。 - 代码格式:注释的双斜线与注释内容之间有且仅有一个空格,单行字符数限制不超过 120 个,超出需要换行。
- OOP 规约 :所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较。