在学习java时,大家都会学到面向对象的概念,并在以后的工作和学习中常常遇到他。众所周知,面向对象有三大基本特征,即封装、继承、多态。今天这篇文章,就是要为大家介绍一下面向对象的封装。
一、什么是封装
在编程过程中,我们可以通过 对象.成员名 方法来调用和修改对象的属性。但是,在大多情况下,对象的属性是需要被保护的,这样随随便便地使用对象的属性是十分不合理的。所谓封装,就是把类中的成员(属性)通过访问修饰符(private/默认defalt/protected/public)来进行约束。
打个比方,把类比作一个房子,房子里的家具们就是各种属性。放自己的东西如果可以让所有的人用,那么这个房子就会很不安全。但是如果规定好了这个定西谁能用,就可以规避这个问题。那么,怎么进行封装呢?
二、封装的一般做法
1、把属性修饰为private
这样做可以保护属性
例:
//学号
private int sNo ;
2、根据需求构建get()、set()方法
以下都可以用快捷键Alt+Ins
get()、set()方法就相当于给使用属性开的门
例:
public int getsNo() {
return sNo;
}
public void setsNo(int sNo) {
this.sNo = sNo;
}
使用的时候如下:
Student stu = new Student(20,"张三");//创建对象stu
stu.getsNo();
stu.setsNo(30);
3、构建合理的构造方法
构造方法就是用类创建对象时用的方法,没有的话就不能用这个类创建对象。
例:
创建有参构造
public Staff(int sNo, String name) {
this.sNo = sNo;
this.name = name;
}
创建无参构造
public Staff() {
}
5、创建其他所需方法,修饰为publlic
public void study() {
System.out.println("学生要学习");
}
5、根据需求创建toString()方法
这个方法就是用来展示所有属性的。如果不用的话,就需要一条一条的get()
用快捷键全选就出来啦
@Override
public String toString() {
return "Staff{" +
"sNo=" + sNo +
", name='" + name + '\'' +
'}';
}
不满意的可以手动改
三、完整实例
public class Student {
private int sNo;
private String name;
public Student() {
}
public Student(int sNo, String name) {
this.sNo = sNo;
this.name = name;
}
public int getsNo() {
return sNo;
}
public void setsNo(int sNo) {
this.sNo = sNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void study() {
System.out.println("学生要学习");
}
@Override
public String toString() {
return "Student{" +
"sNo=" + sNo +
", name='" + name + '\'' +
'}';
}
}
都看到这了,点个赞再走呗