现在的位置: 首页 > 综合 > 正文

浅谈java封装思想

2013年09月06日 ⁄ 综合 ⁄ 共 2463字 ⁄ 字号 评论关闭

一、封装

封装就是将属性私有化,提供公有的方法访问私有的属性。

*实现封装的步骤:
(1)修改属性的可见性来限制对属性的访问。
(2)为每个属性创建一对赋值方法和取值方法,用于对这些属性的访问。
(3)在赋值和取值方法中,加入对属性的存取限制。

**为了实现良好的封装性,我们通常将类的成员变量声明为private,再通过
public的方法来对这个变量进行访问。对一个变量的操作,一般都有读取和
赋值操作,我们分别定义两个方法来实现这两种操作,一个是getXxx()(Xxx
表示要访问的成员变量的名字),用来读取这个成员变量操作,另外一个是
setXxx()用来对这个成员变量赋值。

**如果外面的程序可以随意修改一个类的成员变量,会造成不可预料的程序错误,
就象一个人的身高,不能被外部随意修改,只能通过各种摄取营养的方法去修
改这个属性。
public class AccpTeacher{
    private String name;
    private int age;

    public String getName(){
    return name;
}
    public void setName(String name){
    this.name = name;
}
    public int getAge(){
    return name;
}
    public void setName(String age){
    if(age<22){
    System.out.println("年龄不符合,太小!");
}else{
this.age = age;
}
}
}

****封装的优点:
(1)隐藏类的实现细节;
(2)让使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制
     逻辑,限制对属性的不合理操作;
(3)便于修改,增强代码的可维护性;

二、构造方法

构造方法负责对象成员的初始化工作,为实例变量赋予合适的初始值。

*构造方法的特征
(1)它具有与类相同的名称;
(2)它不含返回值;
(3)它不能在方法中用return语句返回一个值
##注意:在构造方法里不含返回值的概念是不同于“void”的,在定义构造方法
时加了“void”,结果这个方法就不再被自动调用了!
**通过调用带参数的构造方法,在创建对象时,一并完成了对象成员的初始化
工作,简化了对象初始化的代码。
##
public class AccpTeacher{
    private String name;
    private int age;
    private String school;

/*    public AccpTeacher(String name,int age,String school){
    this.name = name;
    this.age = age;
    this.school = school;
}*/
    public String introduction(){
    return "Hello,everybody! 我是"+school+"的"+name;
    }
    public String getName(){
    return name;
}
    public void setName(String name){
    this.name = name;
}
    public String getSchool(){
    return school;
}
    public void setName(String school){
    this.school = school;
}
    public int getAge(){
    return name;
}
    public void setName(String age){
    this.age = age;
}
}
调用程序(1):
public class AccpTeacherTest{
    public static void main(String[] args){
    AccpTeacher teacher = new AccpTeacher();
    teacher.setName("李芳");
    teacher.setSchool("广科");
    teacher.setAge(21);
System.out.println(teacher.introduction());
}
}
调用程序(2):
public class AccpTeacherTest{
    public static void main(String[] args){
    AccpTeacher teacher = new AccpTeacher("李芳","广科",21);
System.out.println(teacher.introduction());
}
}

***构造方法的作用:
当一个类的实例对象刚产生时,这个类的构造方法就会
被自动调用,我们可以在这个方法中加入要完成初始化工作的代码。这就好像
我们规定每个“人”一出生就必须先洗澡,我们就可以在“人”的构造方法中
加入完成“洗澡”的程序代码,于是每个“人”一出生就会自动完成“洗澡”
,程序就不必再在每个人刚出生时一个一个地告诉他们要“洗澡”了。   

****构造方法的重载
public class AccpTeacher{
    private String name;
    private int age;
    private String school="北京中心"
    public AccpTeacher(String name,String school){
    this.name = name;
    this.school = school;
}
    public AccpTeacher(String name,String school,int age){
    this(name,school);//调用上面的构造方法
    this.age = age;
}
    public String introduction(){
    return "Hello,everybody! 我是"+school+"的"+name;
}

}

写的不够好的地方大家补一下

抱歉!评论已关闭.