封装课程所得
四种权限修饰符权限作用范围
关键字 | 本类访问 | 同一个包下访问 | 不同包下的子类访问 | 不同包无关类所发访问 |
---|---|---|---|---|
private | yes | |||
default(默认) | yes | yes | ||
protected | yes | yes | yes | |
public | yes | yes | yes | yes |
static关键字
static关键字本质上是是在内存中开辟一块独立“共享”空间,所有的字段都可以访问它
看下面这段代码
public class MoneyShift {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String result = fanZhuan(s.next());
System.out.println(result);
int money = 23;
String moneys = moneyShift(money);
System.out.println(moneys);
}
public static String fanZhuan(String arr){
String p = "";
for(int j=0,i = arr.length() - 1;i >= 0;i--,j++){
char c = arr.charAt(i);
p = p + c;
}
return p;
}
}
这是支票上数字转化为中文的代码,在调用fanZhuan函数时,不需要实例变量,通过类名就可以调用。
关于static关键字的反思与几点说明
- 笔者认为静态方法类似于c语言中的函数
- 调用静态字段时,不推荐实例对象.静态字段来访问,而是用类名.静态字段来访问,因为实例对象是没有静态字段的,是编译器自动转换的结果。
- 静态方法属于class而不属于实例,所以无法访问实例字段。