1.理解什么是封装
面向对象的三大特征是:封装、继承、多态;而封装指的是将某些对象的状态信息隐藏在该对象的内部,不允许外部的程序直接访问、修改,只能通过该对象特有的方法才可以实现对隐藏信息的访问、修改。
2.访问控制符(预备知识)
Java提供了3个访问控制符:public、protect、private,再加上java一个默认的访问控制符(暂称为default),提供了4个访问控制级别。
3.如何封装(重点)
程序员用代码说话,所以我对部分代码进行了修改,并加上了注释,方便大家阅读,希望大家仔细阅读代码里的注释,相信看完了之后大家就会理解如何封装的:
文件目录:
Person里的代码(封装对象):
package com.java.study;
public class Person {
//用private隐藏成员变量,不能被其他类直接引用修改
private int age;
private String name;
public int getAge() {
return age;
}
//判断输入的年龄是否正确
public void setAge(int setage) {
//判断输入的值是否符合要求
if (setage > 130 || setage < 0) {
System.out.println("输入错误!");
return;
} else {
//如果输入正确,则赋值给该类隱藏的成员变量age
this.age = setage;
}
}
public String getName() {
return name;
}
//判断输入的名字是否正确
public void setName(String setname) {
//判断输入的值是否符合要求
if (setname.length() > 6 || setname.length() < 2) {
System.out.println("输入错误!");
return;
} else {
//如果输入正确,则赋值给该类隱藏的成员变量name
this.name = setname;
}
}
}
PersonUse里的代码:
package com.java.study;
public class PersonUse {
public static void main(String[] args) {
Person person = new Person();
//已经由系统初始化过,值为0
System.out.println(person.getAge());
//未赋值前,为null
System.out.println(person.getName());
//通过setAge方法给年龄赋值
person.setAge(28);
//通过setName方法给年龄赋值
person.setName("java");
System.out.println("姓名:" + person.getName());
System.out.println("年龄:" + person.getAge());
}
}