本文仅供本人学习,来源已注明
类和对象
访问修饰符
来源:https://how2j.cn/k/class-object/class-object-modifier/295.html
成员变量有四种修饰符
private 私有的
package/friendly/default 不写
protected 受保护的
public 公共的
类和类之间的关系有如下几种:
以Hero为例
自身:指的是Hero自己
同包子类:ADHero这个类是Hero的子类,并且和Hero处于同一个包下
不同包子类:Support这个类是Hero的子类,但是在另一个包下
同包类: GiantDragon 这个类和Hero是同一个包,但是彼此没有继承关系
其他类:Item这个类,在不同包,也没有继承关系的类
红色字体,表示不可行
那么什么情况该用什么修饰符呢?
从作用域来看,public能够使用所有的情况。 但是大家在工作的时候,又不会真正全部都使用public,那么到底什么情况该用什么修饰符呢?
- 属性通常使用private封装起来
- 方法一般使用public用于被调用
- 会被子类继承的方法,通常使用protected
- package用的不多,一般新手会用package,因为还不知道有修饰符这个东西
再就是作用范围最小原则
简单说,能用private就用private,不行就放大一级,用package,再不行就用protected,最后用public。 这样就能把数据尽量的封装起来,没有必要露出来的,就不用露出来了
类属性
当一个属性被static修饰的时候,就叫做类属性,又叫做静态属性
当一个属性被声明成类属性,那么所有的对象,都共享一个值
与对象属性对比:
不同对象的 对象属性 的值都可能不一样。
比如盖伦的hp 和 提莫的hp 是不一样的。
但是所有对象的类属性的值,都是一样的
链接:https://how2j.cn/k/class-object/class-object-class-attribute/296.html
类方法
类方法: 又叫做静态方法
对象方法: 又叫实例方法,非静态方法
访问一个对象方法,必须建立在有一个对象的前提的基础上
访问类方法,不需要对象的存在,通过类名就可以直接调用
比如 Math.random()
random()就是一个类方法,直接通过类Math进行调用,并没有一个Math的实例存在。
链接:https://how2j.cn/k/class-object/class-object-class-method/306.html
类方法中不能直接调用成员方法,必须通过创建对象调用。
成员方法中可以直接同类中的其他成员方法或者类方法