private 私有属性 只在同一个包下 同一个类中可以调用
同一个包下,不同的类中,可以调用 缺省,保护(protected),公共(public)可以调用,
不同的包下的类中,继承关系,可以调用 保护(protected),公共(public)
不同的类的包下(非继承),可以调用 公共(public)
1 package com.bytezero.permission; 2 /* 3 * 4 * 四种不同的权限修饰
5 * 6 */ 7 public class Order 8 { 9 private int orderPrivate; 10 int orderDefault; 11 protected int orderProtected; 12 public int orderPublic; 13 14 15 16 private void methodPrivate() 17 { 18 orderPrivate = 1; 19 orderDefault = 2; 20 orderProtected = 3; 21 orderPublic = 4; 22 } 23 24 void methodDefault() 25 { 26 orderPrivate = 1; 27 orderDefault = 2; 28 orderProtected = 3; 29 orderPublic = 4; 30 31 } 32 protected void methodProtected() 33 { 34 orderPrivate = 1; 35 orderDefault = 2; 36 orderProtected = 3; 37 orderPublic = 4; 38 } 39 public void methodPublic() 40 { 41 orderPrivate = 1; 42 orderDefault = 2; 43 orderProtected = 3; 44 orderPublic = 4; 45 } 46 47 48 49 }
1 package com.bytezero.permission; 2 3 public class OrderTest 4 { 5 public static void main(String[] args) { 6 Order order = new Order(); 7 8 order.orderDefault = 1; 9 order.orderProtected =2; 10 order.orderPublic = 3; 11 12 order.methodDefault(); 13 order.methodProtected(); 14 order.methodPublic(); 15 16 17 //同一个包中的其他类,不可以调用Order类中的私有的属性,方法 18 // order.orderPrivate = 4; 19 // order.methodPrivate(); 20 // 21 } 22 }
1 package com.bytezero.permission2; 2 3 import com.bytezero.permission.Order; 4 5 public class OrderTest 6 { 7 public static void main(String[] args) { 8 9 Order order = new Order(); 10 order.orderPublic = 1; 11 12 //不同包下的普通类(非子类),要使用order类,不可以调用声明为private, 13 //缺省,protected权限的属性,方法。 14 15 // order.methodPublic(); 16 // 17 // order.orderPrivate = 2; 18 // order.orderDefault = 3; 19 // order.orderProtected = 4; 20 // 21 // 22 // order.methodDefault(); 23 // order.methodProtected(); 24 // order.methodProtected(); 25 26 27 28 29 } 30 31 32 public void show(Order order) 33 { 34 35 36 order.orderPublic = 1; 37 38 //不同包下的普通类(非子类),要使用order类,不可以调用声明为private, 39 //缺省,protected权限的属性,方法。 40 41 // order.methodPublic(); 42 // 43 // order.orderPrivate = 2; 44 // order.orderDefault = 3; 45 // order.orderProtected = 4; 46 // 47 // 48 // order.methodDefault(); 49 // order.methodProtected(); 50 // order.methodProtected(); 51 52 order.orderPublic = 1; 53 54 //不同包下的普通类(非子类),要使用order类,不可以调用声明为private, 55 //缺省,protected权限的属性,方法。 56 57 // order.methodPublic(); 58 // 59 // order.orderPrivate = 2; 60 // order.orderDefault = 3; 61 // order.orderProtected = 4; 62 // 63 // 64 // order.methodDefault(); 65 // order.methodProtected(); 66 // order.methodProtected(); 67 68 } 69 70 71 72 73 74 75 76 77 }
1 package com.bytezero.permission2; 2 3 import com.bytezero.permission.Order; 4 5 public class SubOrde extends Order { 6 7 public void method() 8 { 9 orderProtected = 1; 10 orderPublic = 22; 11 12 methodProtected(); 13 methodPublic(); 14 15 16 //在不同包的子类中,不能调用Order类中声明private和缺省权限属性和方法 17 // orderDefault = 3; 18 // orderPrivate = 4; 19 // 20 // methodDefault(); 21 // methodPrivate(); 22 23 24 } 25 26 }