面向对象的三大特征
(1)封装 –>提高程序的安全性 (主要指的是值的准确的性)
(2)继承–>提高代码的复(重复使)用性
(3)多态–>提高程序的扩展性
封装
public :最大的访问权限(整个项目可见)
protected :子类方访问权限
package :包内访问权限
private :本类访问权限
- 封装的好处:
安全
使用封装保证属性的安全性(属性值的准确性)
(1)属性私有化 private
(2)提供公有的取值,赋值方法
(3)在赋值的方法中进行值的合理性验证
public class Student{
//(1)属性私有化
private String name;
private int age;
private String gender;
//(2)提供公有的取值,赋值方法
public void setAge(int age){
//(3)在赋值的方法中对值进行合理性验证
if(age<18||age>30){
System.out.println("对不起,学生的年龄要在18到30之间");
this.age=18;//给属性设置成默认值
}else
this.age=age;//将局部变量的值赋给成员变量
}
public int getAge(){
return age;
}
public void setGender(String gender){
if(!"男".equals(gender) &&!"女".equals(gender)){
System.out.println("对不起,性别有误");
this.gender="男";
}else
this.gender=gender;
}
public String getGender(){
return gender;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
//构造方法
public Student(){
}
public Student(String name,int age,String gender){
this.name=name;
//this.age=age;
//this.gender=gender;
this.setAge(age); //调用本类的成员方法
this.setGender(gender);
}
public void show(){
System.out.println(name+"\t"+age+"\t"+gender);
}
}
测试
public class TestStudent{
public static void main(String [] args){
Student stu=new Student();
stu.setAge(9); //对象名.方法名
System.out.println(stu.getAge());
stu.setGender("人妖");
System.out.println(stu.getGender());
Student stu2=new Student("张三",12,"人妖");
stu2.show();
}
}
简单
- JavaBean是一个特殊的Java类
(1)类是public
(2)属性是private
(3)提供get,set方法
(4)提供无参构造