JAVA中面向对象——封装

it2025-03-03  26

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

最新回复(0)