类的封装性
- Java主要通拓过private和public两种访问权限修饰符控制类中成员(变量、方法)是否可以被访问;
- public表示公共的,它所修饰的成员变量和成员方法能够被任何其他类和程序所访问(调用);
- private表示私有的,它所修饰的成员变量和成员方法除了本类中自己的方法可以直接访问、调用外,不能被其它类和程序所访问调用;
如何访问封装棋类的成员变量呢?
- 可以采用一个成员变量的方法来设置(修改)私有成员变量的值,这样的方法名通常含有“set()”,因此通常称为setter方法。
- 在读取私有成员变量的值时,采用一个成员方法,这样的方法通常含有“get”,因此通常称为“getter()”方法
学生类:Student
package mine;
public class Student {
private String name;
private String sex;
private int age;
private float score;
//无参构造
Student() {
name="";
sex="";
age=0;
score=0.0f;
}
//有参构造
Student(String inNAme,String inSex, int inAge ,float inScore){
setAge(inAge);
setName(inNAme);
setScore(inScore);
setSex(inSex);
}
@Override
public String toString() {
return "Student [name=" + name + ", sex=" + sex + ", age=" + age + ", score=" + score + "]";
}
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 float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
public void speak() {
if (name.equals("")) {
System.out.println("该生没有姓名,暂时无法介绍");
}else
System.out.print("自我介绍:我叫"+name+","+sex+"今年"+age+"岁,");
}
public void grade() {
if (score<=0.0f) {
System.out.println("暂时没有该学生信息");
} else {
System.out.println("java考试得分"+score);
}
}
}
主函数:StudentTest测试类
package mine;
public class StudentTest {
public static void main(String[] args) {
Student stu1 =new Student();
stu1.setName("xl");
stu1.setSex("男");
stu1.setAge(22);
stu1.setScore(100);
stu1.speak();
stu1.grade();
Student stu2 =new Student("qq","女",22,100.0f);
stu2.speak();
stu2.grade();
}
}