JAVA中面向对象——封装
面向对象三大特性
封装、继承、多态
封装
定义
- 把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作。对不可信的进行信息隐藏。在一个对象内部,某些代码或者某些数据可以是私有的,不能被外界访问。通过这种方式,现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
- 即:封装是将对象的信息隐藏在对象内部,禁止外部程序直接访问对象内部的属性和方法。
实现
(1)修改属性的可见性,限制访问权限
(2)设置属性的读取方法
(3)在读取属性的方法中,添加对属性读取的限制
- 可以简单理解为:
(1)属性私有化(隐藏内部细节),方法是共有的;
(2)提供公共的方法来访问私有的属性,getter(用来取值,return),setter(用来赋值,parameter)
实现代码
package sy2_1;
/**
* 1. 定义一个表示学生的类Student。这个类的属性有“学号”、“班号”、“姓名”、“性别”、“年龄”,方法有“获得学号”、“获得班号”、 “获得姓名”、“获得性别”、“获得年龄”、构造函数、printInfo()(实现将学生的信息输出显示),并要求实例化一个学生,并输出学生信息。
*/
public class Student {
//定义私有变量
private String name;
private String sex;
private int age;
private String classid;
private String schoolid;
//构造函数,getter/setter,在eclipse中通过右击->Source->Generate Constructor using Field自动生成
public Student(String name, String sex, int age, String classid,
String schoolid) {
super();
this.name = name;
this.sex = sex;
this.age = age;
this.classid = classid;
this.schoolid = schoolid;
}
//getter/setter,在eclipse中通过右击->Source->Generate Getters and Setters自动生成
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getClassid() {
return classid;
}
public void setClassid(String classid) {
this.classid = classid;
}
public String getSchoolid() {
return schoolid;
}
public void setSchoolid(String schoolid) {
this.schoolid = schoolid;
}
//输出方法
public void printInfo(){
System.out.println("姓名:"+getName()+" 性别:"+getSex()+" 年龄:"+getAge()+" 班号:"+getClassid()+" 学号:"+getSchoolid());
}
}
package sy2_1;
/**
* 实例化
*/
public class Person {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Student P1=new Student("KIKO","女",22,"电信17","201711111111");
P1.printInfo();
}
}