今天学习的类的访问权限,类的封装问题。李哥说,一个类(JavaBean)一个文件夹。类封装的过程。新建一个Teacher老师类。
package org.lanqiao.proj.java1.chapter06.fangwenquanxian;
/**
* 类的封装 以及访问权限问题
* */
public class Teacher {
//成员变量
private String teaName ;
private int teaAge ;
private String teaCourse ;
private int teaYear;
private char teaSex ;
//成员方法-构造方法
public Teacher() {}
public Teacher(String teaName, int teaAge, String teaCourse, int teaYear, char teaSex) {
super();
this.teaName = teaName;
this.teaAge = teaAge;
this.teaCourse = teaCourse;
this.teaYear = teaYear;
this.teaSex = teaSex;
}
//getter和setter方法:通过公有的成员方法访问类内部的私有成员变量。
public String getTeaName() {
return teaName;
}
public void setTeaName(String teaName) {
this.teaName = teaName;
}
public int getTeaAge() {
return teaAge;
}
public void setTeaAge(int teaAge) {
this.teaAge = teaAge;
}
public String getTeaCourse() {
return teaCourse;
}
public void setTeaCourse(String teaCourse) {
this.teaCourse = teaCourse;
}
public int getTeaYear() {
return teaYear;
}
public void setTeaYear(int teaYear) {
this.teaYear = teaYear;
}
public char getTeaSex() {
return teaSex;
}
public void setTeaSex(char teaSex) {
this.teaSex = teaSex;
}
//其他方法:toString()方法 一般用于代码测试
@Override
public String toString() {
return "Teacher [teaName=" + teaName + ", teaAge=" + teaAge + ", teaCourse=" + teaCourse + ", teaYear="
+ teaYear + ", teaSex=" + teaSex + "]";
}
}
五个私有成员变量,一个无参的构造方法(就是对成员变量进行初始化),一个是带参数的构造方法。toString()用于测试。
测试验证其工作的原理:
package org.lanqiao.proj.java1.chapter06.fangwenquanxian;
/**
* 类的封装测试
* */
public class EncapsulationTest {
public static void main(String[] args) {
Teacher teacher = new Teacher();
System.out.println(teacher);
Teacher liShengY = new Teacher("李盛源", 22, "java基础", 1, '男');
System.out.println(liShengY.toString());//也可以 System.out.println(liShengY);
Teacher dengMing = new Teacher();
dengMing.setTeaName("邓酩");
String dengMing1 = dengMing.getTeaName();
System.out.println(dengMing1);
dengMing.setTeaAge(20);
dengMing.setTeaCourse("JavaWeb");
dengMing.setTeaAge(25);
dengMing.setTeaYear(3);
dengMing.setTeaSex('男');
System.out.println(dengMing);//输出对象名 默认是去调用dengMing.toString()方法
}
}
第一次写这个,我还不太知道如何表达。