封装
即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别,
将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作
数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。在电子方面,封
装是指把硅片 上的电路管脚,用导线接引到外部接头处,以便与其它器件连接。
封装
将成员变量进行私有化,就不能直接访问,只能通过对外的公共(public) 访问 方法修饰
被private修饰的成员变量/成员方法只能在本类中访问!
本来我们可以直接调用,但是这样不好,所以java里面就直接 将成员变量进行私有化,就不能直接访问,只能通过对外的公共(public) 访问 方法修饰
被private修饰的成员变量/成员方法只能在本类中访问!
封装前:
class Student{
String name ; // 姓名
private int age ; //年龄
//将成员变量输出
public void show(){
System.out.println(name+"----,"+age) ;
}
}
class StudentDemo{
public static void main(String[] args){
//创建一个学生类的具体对象
Student s1 = new Student() ;
//给成员变量赋值:对象名.成员变量
s1.name = "张三" ;
//访问了私有成员
//s1.age = 27 ;
s1.show();
}
}
封装后
class Student2{
//成员变量
//姓名
private String name ;
//性别
private String gender ;
//年龄
private int age ;
//学号
private String id;
//提供对外的公共访问方法:seXXX()/getXXX()
//给name设置
public void setName(String n) { //n 局部变量
name = n ;
}
//获取年龄的值
public String getName(){
return name ;
}
//性别的设置和获取
public void setGender(String g){
gender = g ;
}
public String getGender(){
return gender ;
}
//年龄
public void setAge(int a){
age = a ;
}
public int getAge(){
return age ;
}
//id学号
public void setId(String i){
id = i ;
}
public String getId(){
return id ;
}
//定义成员方法:显示成员变量
public void show(){
System.out.println("姓名是:"+name+",她的年龄是:"+age+",性别是: "+gender+",她的学号是:"+id) ;
}
}
//测试类
class StudentTest{
public static void main(String[] args){
//需求: 给学生事物的具体对象的成员变量进行赋值
//创建学生对象
Student2 s = new Student2() ;
//私有的成员不能访问
//s.name = "张三" ;
//s.age = 18 ;
//给name赋值
s.setName("张三") ;
s.setGender("男") ;
s.setAge(18) ;
s.setId("9527") ;
//姓名是:高圆圆,她的年龄是:38,性别是: 女,她的学号是:9527
s.show() ;
System.out.println("--------------------------");
System.out.println(s.getName()+"----"+s.getGender()+"----"+s.getAge()+"-----"+s.getId());
}
}
我们可以只关注于使用,而不关心具体的实现