封装
封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
将变量和访问这个变量的方法放在一起,将一个类中的成员变量全部定义成私有的,只有这个类自己的方法才可以访问到这些成员变量,这就基本上实现对象的封装,就很容易找出要分配到这个类上的方法了,就基本上算是会面向对象的编程了。把握一个原则:把对同一事物进行操作的方法和相关的方法放在同一个类中,把方法和它操作的数据放在同一个类中。
好处:
将变化隔离。
便于使用。
提高重用性。
提高安全性。
封装原则:
将不需要对外提供的内容都隐藏起来。
把属性都隐藏,提供公共方法对其访问。
private(私有)关键字:
是一个权限修饰符。
用于修饰成员(成员变量和成员函数)
被私有化的成员只在本类中有效。
当成员私有后,提高了安全性。但是访问权限降低了。这时可以通过对外提供公有方法的形式对其进行访问。
好处是:可以在方法中对成员变量的访问进行控制。
注意:私有仅仅是封装的一种体现形式而已。
Public表示该属性(方法)公开;
Private表示该属性(方法)为只有本类内部可以访问(类内部可见)。
用private还要用set和get方法供其他方法调用,这样可以保证对属性的访问方式统一,并且便于维护访问权限以及属性数据合法性
如果没有特殊情况,属性一定私有,方法该公开的公开。如果不指明谁调用方法,则默认为this。
区分实例变量和局部变量时一定要写this。
class Demo{ private int age;//把属性私有对外提供公共的访问方法,可控性提高了 public void setAge(int age){//age = -10; if(age>=0 && age<=200){ this.age = age; } else { System.out.println("请回火星"); } } public int getAge(){ return age; } } class DemoTest{ public static void main(String[] args) { Demo d = new Demo(); d.setAge(-10); System.out.println(d.getAge()); } }
总结:
封装:就是使对象的属性尽可能私有,对象的方法尽可能的公开。用private表示此成员属性为该类的私有属性。
私有其属性然后对外提供公共的访问方式