面向对象的三大特性: 封装 继承 多态
封装: 隐藏内部的实现细节,对外提供公共的访问方式
类,方法,属性私有化…都是封装具体的体现
私有是封装,封装就是私有,这句话对么???
不对 ,私有是封装,封装不仅仅是私有
好处:
提高代码的复用性
提高代码的安全性
javabean一系列类的同称:根据一些列对象抽取共性定义的类成为模板类|图纸
1.类是公共的
2.至少提供一个空构造
3.私有的属性
4.公共的访问方式
关键字 private,成员修饰符
私有的,只能在当前本类中使用,外部类中无法使用
属性一旦私有,就要配合设置器和访问器使用 setter getter,公共的方法
私有的属性一定安全么?
1.不允许外部直接操作
2.设置器和访问器是方法,可以进行逻辑判断
注意:以后自定义的模板类,属性都私有,并且同时提供一对公共的访问方式设置器访问器
实例:封装一个Persion类
public class Person {
private String name;
private int age;
public Person() {
// TODO Auto-generated constructor stub
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
//name 设置器
public void setName(String name){
this.name=name;
}
//name 的访问器
public String getName(){
return name;
}
//age 的设置器
public void setAge(int age){
if(age>=1){
this.age=age;
}else{
this.age=18;
}
}
//age的访问器
//返回值:要 参数:不需要
public int getAge(){
return this.age;
}
public void speak(){
System.out.println("每天边敲代码边说话...");
}
public void info(){
System.out.println(name+"-->"+age);
}
}
创建Persion的测试类
public class PersonTest {
public static void main(String[] args) {
Person p=new Person();
//p.name="李四";
//p.age=-20;
p.setName("王五");
p.setAge(11);
p.speak();
p.info();
System.out.println(p.getAge());
System.out.println(p.getName());
}
}
Java的封装就是公共的类,私有的成员属性,公共的或者私有的成员方法