ublic是所有地方都可以访问,protected是自己和所有子类都可以访问,private是谁都不可以访问,包括自己的对象。不写就是同一个包里面都可以访问。
步骤 1 图解
步骤 2 public对于class是最常用的
public对于class是最常用的,任何地方都可以访问。反正我看公司里面的代码,基本都是写的public类,这样避免了很多麻烦。不管你的类写在什么地方,想用就用。
想想也是,为什么要跟自己过不去呢,写项目哪有那么多弯弯绕,完成永远比完美重要。
步骤 3 protected多用于继承的情况
protected这个修饰符比较繁琐,它涉及到是否是同一个包的问题。
同一个包的情况:
1.在当前类开发中,main方法之外可以直接借助名字使用,当前类的main方法中可以使用对象打点的方式直接使用成员。
2.在当前类之外,同一个包中,使用对象(或是类名,针对静态的)打点调用是被允许的。
3.在子类中,同一个包中,受保护成员允许被继承,也就是说在子类的开发中,可以直接使用受保护成员的名字进行使用。子类的main方法中可以使用子类或是父类对象打点调用。
4.在当前类之外,子类之外,要使用子类的类中,同一个包中,可以使用子类或是父类对象打点调用。
不同包的情况:
1.在当前类之外,不同包中,使用对象(或是类名,针对静态的)打点调用是被禁止的。
2.在子类中,不同包中,受保护成员允许被继承,也就是说在子类的开发中,可以直接使用受保护成员的名字进行使用。子类的main方法中只能通过子类对象打点调用。父类对象不行,这个时候相当于父类中的受保护成员跨包了。
3.在当前类之外,子类之外,要使用子类的类中,与子类同一个包中,通过子类对象打点是调用不出父类中的受保护的成员的。父类对象更不行,这个时候相当于父类中的受保护成员跨包了。如果想要通过子类对象调用父类的受保护的成员,需要重新覆写父类的这个成员。
4.在当前类之外,子类之外,要使用子类的类中,与父类同一个包中,通过子类对象打点是可以调用父类中的受保护的成员的。父类对象也行,同个包中。
5.在与父类和子类都不同包的第三个包中,要想通过子类对象调用父类的受保护成员,可以通过覆写父类受保护成员,并将访问限制符修改成public。
步骤 4 private一般就是用于属性
一个类里面的属性,基本都是private,反正我见到的项目,里面基本都是这么干的,我也是这么写的。
属性就是不让别人访问,如果你要访问,可以调用我对应的get,set方法。
步骤 5 企业中的代码是怎样的
可能我没有接触到那么高大上的项目,反正我看到的就是,class,99%都是public,属性,99%都是private。
有继承的(继承后面我们会讲,现在不了解也没关系),装个逼,方法用protected秀一下。但是,80%大家都是用的public。
综上,一个public打通关。