在类中,我们通过需求来写自己想要的方法
封装就是我们隐藏对象的实现细节,仅仅对外提供公共访问方式
外面必须使用我们所提供的方法 所以就可以在方法中添加数据监测功能
如下代码
package test2; /* 定义一个学生类 成员变量:name,age 成员方法:show() 方法 我们在使用这个案例的过程中,发现一个问题: 通过对象去给成员变量赋值,可以赋值一些非法的数据 这是不合理的。 应该是这个样子的:在赋值之前,先对数据进行判断。 判断到底在哪里做比较合适呢? StudentDemo 是一个测试类,测试类一般只创建对象, 调用方法。 所以,这个判断应该定义在student类中 而我们在成员变量的位置可以不可以进行判断呢? 是不可以的。 因为做数据校验必须要依靠一些逻辑语句。 逻辑语句是应该定义在方法中的,所以,我们最终决定在 student 类中提供一个方法来对数据进行校验 按照我们前面的分析,我们给出了一个方法进行校验 但是呢,它偏偏不调用方法来赋值,还是直接赋值了 但是这样我们的方法就没有起到作用 我就应该要求你必须使用我的方法,而不能直接调用成员变量赋值 怎么去强制要求不能直接使用成员变量呢? 针对这种情况,Java就提供了一个关键字 :private private :私有的,可以修饰成员变量和成员方法 注意的:被private 修饰的成员只能在本类中访问。 其实我讲解到现在 讲解的是一个封装的思想 封装: 是隐藏对象的属性和实现细节 仅仅对外提供公共访问方式 */ //import test1.Student; class Student { String name ; private int age; /* 返回值类型: void 参数列表: int a */ public void setAge(int a) { if(a<0 || age >120) { System.out.println("你给的年龄有问题"); } else { age =a; } } public void show() //显示所有的成员变量值 { System.out.println("姓名:"+name); System.out.println("年龄:"+age); } } public class New { public static void main(String[] args) { Student s=new Student(); s.show(); System.out.println("________________"); //给成员变量赋值 s.name="林情侠"; // s.age=27; s.setAge(27); s.show(); System.out.println("________________"); //给age赋值 s.setAge(-27); s.show(); System.out.println("________________"); } }