访问修饰符:
访问修饰符 有 private public protecte package/friendly/default
一般不写package/friendly/default 比如String name;
以上的访问修饰符 作用和其中文意思相近。
类之间的关系:
自身:也就是类自身
同包子类:一个类的子类 处于同一个包之下
不同包子类:同上 只是不处于一个包
同包类:两个不同类处于一个包中 有着继承关系
其他类:不在同一个包 也没有继承关系
这样的区分 是为之后做项目 更好的进行区分 同时也会合理使用访问修饰符。
那么什么情况该用什么修饰符呢?
- 属性通常使用private封装起来
- 方法一般使用public用于被调用
- 会被子类继承的方法,通常使用protected
- package用的不多,一般新手会用package,因为还不知道有修饰符这个东西
再就是作用范围最小原则
简单说,能用private就用private,不行就放大一级,用package,再不行就用protected,最后用public。 这样就能把数据尽量的封装起来,没有必要露出来的,就不用露出来了
绿色代表可以 红色代表不可以 从private 到 public 层层开放。
类属性 类方法:
类属性:
当一个属性被static修饰的时候,就叫做类属性,又叫做静态属性
当一个属性被声明成类属性,那么所有的对象,都共享一个值
且当一个对象引用一个属性时 比如 某个对象.类属性 把之前的类属性内容改变 其他的对象.类属性其内容也随之改变 因为同共享一个值。
类方法在设计的时候也是考虑到 不用因为某一个对象而随之匹配相应的内容 所有对象都是一样的时候 就可以写成类方法。
类方法: 又叫做静态方法(在码代码时候也需要static进行修饰)
对象方法: 又叫实例方法,非静态方法
访问一个对象方法,必须建立在有一个对象的前提的基础上
访问类方法,不需要对象的存在,直接就访问
调用格式 有:
对象.类方法 类.类方法 但是为了语义上的理解 通常选择其二。
注意:在一个类方法中,直接调用一个对象方法,编译器是会报错的。
但是 静态方法调用非静态方法,需要用对象.引用
示例: 以下会出现错误
但是用对象.引用之后:
是可以的