简易Java进程模型可以看到Java程序本质上是面向方法的程序,从main或run方法开始,方法就不停的在调用的新方法,形状像一个动态的方法栈,直到方法栈消亡为止,程序才结束。
实际上,方法调用方法有时会受到一定的限制:
(底下论述的前提是对象都是public的)
被标识为private的方法,只可能被同属一个对象中的方法调用;
被标识为default的方法,只可能被同属一个包中的方法调用;
被标识为protected的方法,可能被同属一个包中的方法调用,也可能被同属一个继承链的子对象中的方法调用;
被标识为public的方法,可能被一个程序中的任意方法调用。
从访问修饰符可以看出:
(1)方法的调用和访问是一码事(不过,语言哲学家维特根斯坦曾说过一句话,大概意思是,两专有名词,总有差别。);
(2)方法属于一个对象、一个包、一个继承链和一个程序,那么可以说Java程序设计既是面向对象,又是面向包、面向继承链、面向程序的程序设计;
(3)方法的调用有下列可能情况:
a,方法调用了同一个对象中的方法
b,方法调用了不在同一个对象中的方法
c,方法调用了同一个包中的方法
d,方法调用了不在同一个包中的方法
e,方法调用了同一个继承链中的方法
f,方法调用了不在同一个继承链中的方法
(4)如果把包比作国家,对象比作公司,方法比作程序员,多家公司联合起来组成一个组织合作开发,这个组织就是继承链。
公司有两个属性:属于国家、处于组织
一个程序员只能被自己公司的程序员访问,那就是private程序员
一个程序员可以被自己国家的程序员访问,即default程序员
一个程序员可以被自己国家的程序员访问,也可以被自己组织的程序员访问,即protected程序员
一个程序员可以被所有国家的程序员访问,即public程序员
(5)留给自己的问题:Java为什么给方法设计访问修饰符?
转载于:https://blog.51cto.com/shrunner/1124014