一、什么是封装 封装就是对象的属性和操作结合为一个整体,和并尽可能隐藏对象内部的细节。 二、为什么要封装 1.为了安全,提高程序的复用性,封装就是该漏的,该藏得藏。 2.如果没有封装就是任意的赋值,任意的取值 三、封装的实现 例如: 1.私有化成员变量 2.提供set和get
public class Student { private String name; private int age; private String gender; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { //可以判断年龄区间是否为正常人,添加自己的业务逻辑 if(age>=0 && age <=120){ this.age = age; }else{ System.out.println("你不是人"); } } public String getGender() { this.gender=gender } public void setGender(String gender) { //可以判断是否为男或女(字符串是否相等equals),添加自己的业务逻辑 if(gender.equals("男") || gender.equals("女")){ this.gender=gender }else{ System.out.println("参数有误"); } return gender; } }
public class Student{ public void test(int score){ s.setName("zs"); //会判断你不是人 s.setAge(66666); //会判断参数有误 s.setGender("kkgjrijgrj"); } }四、方法的封装
public class Student{ public void isPass(int grade){ //通过if判断成绩是否合格 if(grade>=60){ System.out.println("过了"); }else{ System.out.println("挂了"); } } }
Student student=new Student(); //调用方法看是否合格 student.isPass(70);五、参数封装 当传入很多参数需要些很多个,这时候我们会很麻烦,所以将这些数据放入一个对象中,用对象存储数据,如下两种:
public class StudentService { //如果没有封装之前,有很多个参数,需要一个一个写 public void addStudent(String name,String password,String gender){ System.out.println("name:"+name+","+"gender:"+gender); } //方法重载参数进行封装 public void addStudent(Student student){ System.out.println("name:"+student.getName()+","+"gender:"+student.getGender()); } }
//调用,如果添加数据会添加很多行 StudentService studentService=new StudentService(); int addStudent=StudentService.addStudent("djmm","123123","女") int addStudent2=StudentService.addStudent("H","123456","男") //调用的话Set和Get赋值,直接输出student Student student=new Student(); student.setName("hzj"); student.setGender("男"); StudentService.addStudent(student);六、封装返回值 进行程序封装时,应尽量避免一个模块直接修改或操作另一个模块的数据,模块设计追求高内聚,低耦合
public class StudentService{ public void getStudentByName(Student student){ Student student=new Student(); student.setName(""); return student; } }
标签:封装,student,void,基础,Student,Java,public,name From: https://www.cnblogs.com/YHSDDJM/p/16768231.html