java-初步认识封装

来源:互联网 发布:mac修容偏白用哪个色 编辑:程序博客网 时间:2024/05/22 08:13

在类中,我们通过需求来写自己想要的方法

封装就是我们隐藏对象的实现细节,仅仅对外提供公共访问方式

外面必须使用我们所提供的方法  所以就可以在方法中添加数据监测功能

如下代码

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("________________");}}

0 0