一、概述
封装是面向对象三大特征之一,是指隐藏对象的属性和实现细节仅仅对外提供公共的访问方式。封装有有两大好处:1.提高安全性2.能提高重用性。
二、private
private是java中的关键字,是一个权限修饰符,用于修饰成员变量和成员函数/方法。被私有化的成员只能在本类中访问。
三、案例
public class Test1_Student {
public static void main(String[] args) {
// 创建学生对象测试
Student s = new Student();
// 设置属性
// s.sno=1; //被私有化了不能直接访问
s.setSno(1);
s.setName ( "张三");
s.setSubject ( "math");
// s.study(); //被私有化后只能在自己类中使用
//获取属性值
System.out.println(s);//cn.tedu.oop.Student@15db9742
//看s的属性值,在s类中提供重写的toString()
System.out.println(s);//Student [sno=1, name=张三, subject=math]
}
}
// 创建学生类描述学生事物
class Student {
// 提供属性
private int sno;// 学号
// 对外提供public修饰的方法
// 提供公共的setXxx(),用来设置属性值
public void setSno(int no) {
sno = no;
}
// 提供公共的getXxx(),用来获取属性值
public int getSno() {
return sno;// 通过return关键字把sno属性的值返回调用位置
}
//私有化属性并提供公共的set() / get()
private String name;// 姓名
private String subject;// 学科
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
// 提供功能
// private关键字实现封装
private void study() {
System.out.println("正在学习");
}
//为了方便查看属性值,方法重写:toString()
@Override
public String toString() {
return "Student [sno=" + sno + ", name=" + name + ", subject=" + subject + "]";
}
}
四、this
this是java中的关键字,有两种用法:
1.this…xxx:特殊引用,引用当前实例的地址
2.this(…):构造方法之间调用,必须是首行代码