Java零基础教程-面向对象封装性

Java零基础教程-面向对象封装性

更新时间:2017年04月06日

  • 视频类型:java
  • 适合对象:Java学员、Java爱好者、开发人员
  • qq号:2158476996
一键免费下载

下载介绍

更多>>
Java零基础教程-面向对象封装性

控制对年龄的修改,年龄只能为大于等于 0 并且小于等于 120 的值

public class OOTest03 {

public static void main(String[] args) {

//创建一个对象

Student zhangsan = new Student();

/*

zhangsan.id = 1001;

zhangsan.name = "张三";

zhangsan.sex = true;

zhangsan.address = "北京";

zhangsan.age = 20;

*/

zhangsan.setId(1001);

zhangsan.setName("张三");

zhangsan.setSex(true);

zhangsan.setAddress("北京");

zhangsan.setAge(-20);

System.out.println("id=" + zhangsan.id);

System.out.println("name=" + zhangsan.name);

System.out.println("sex=" + zhangsan.sex);

System.out.println("address=" + zhangsan.address);

System.out.println("age=" + zhangsan.age);

}

class Student {

//学号

int id;

//姓名

String name;

//性别 


boolean sex;

//地址

String address;

//年龄

int age;

//设置学号

public void setId(int studentId) {

id = studentId; 

}

//读取学号

public int getId() {

return id;

}

public void setName(String studentName) {

name = studentName;

}

public String getName() {

return name;

}

public void setSex(boolean studentSex) {

sex = studentSex;

}

public boolean getSex() {

return sex;

}

public void setAddress(String studentAddress) {

address = studentAddress;

}

public String getAddress() {

return address;

}

public void setAge(int studentAge) { 

北京动力节点  http://www.bjpowernode.com

9

if (studentAge >=0 && studentAge <=120) {

age = studentAge;

}

}

public int getAge() {

return age;

}

}

从上面的示例,采用方法可以控制赋值的过程,加入了对年龄的检查,避免了直接操纵 student

属性,这就是封装, 封装其实就是封装属性,让外界知道这个类的状态越少越好。以上仍然

不完善,采用属性仍然可以赋值,如果屏蔽掉属性的赋值,只采用方法赋值,如下:

public class OOTest04 {

public static void main(String[] args) {

//创建一个对象

Student zhangsan = new Student();

zhangsan.id = 1001;

zhangsan.name = "张三";

zhangsan.sex = true;

zhangsan.address = "北京";

zhangsan.age = 20;

/*

zhangsan.setId(1001);

zhangsan.setName("张三");

zhangsan.setSex(true);

zhangsan.setAddress("北京");

zhangsan.setAge(20);

*/

/*

System.out.println("id=" + zhangsan.id);

System.out.println("name=" + zhangsan.name);

System.out.println("sex=" + zhangsan.sex);

System.out.println("address=" + zhangsan.address);

System.out.println("age=" + zhangsan.age);

*/

System.out.println("id=" + zhangsan.getId());

System.out.println("name=" + zhangsan.getName());

System.out.println("sex=" + zhangsan.getSex());

System.out.println("address=" + zhangsan.getAddress()); 


System.out.println("age=" + zhangsan.getAge()); 

}

class Student {

//学号

private int id;

//姓名

private String name;

//性别

private boolean sex;

//地址

private String address;

//年龄

private int age;

//设置学号

public void setId(int studentId) {

id = studentId; 

}

//读取学号

public int getId() {

return id;

}

public void setName(String studentName) {

name = studentName;

}

public String getName() {

return name;

}

public void setSex(boolean studentSex) {

sex = studentSex;


public boolean getSex() {

return sex;

}

public void setAddress(String studentAddress) {

address = studentAddress;

}

public String getAddress() {

return address;

}

public void setAge(int studentAge) {

if (studentAge >=0 && studentAge <=120) {

age = studentAge;

}

}

public int getAge() {

return age;

}

}

以上采用 private 来声明成员变量,那么此时的成员变量只属于 Student,外界无法访问,这

样就封装了我们的属性,那么属性只能通过方法访问,通过方法我们就可以控制对内部状态

的读取权利。

封装属性,暴露方法