在类中,我们通过需求来写自己想要的方法
封装就是我们隐藏对象的实现细节,仅仅对外提供公共访问方式
外面必须使用我们所提供的方法 所以就可以在方法中添加数据监测功能
如下代码
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("________________");
}
}