java复习(四)面向对象(二) 封装,访问修饰符

封装  

  • 在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。
  • 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
  • 要访问该类的代码和数据,必须通过严格的接口控制。
  • 封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
  • 适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。 

   封装的优点:

  • 1.良好的封装能够减少耦合。
  • 2.类内部的结构可以自由修改
  • 3.可以对成员变量更精确的控制
  • 4.隐藏信息,实现细节。

 例如:

class bank{                       //这是一个关于银行的类
  
   private Custorm[] custorm;     //所有顾客的基本信息
  
   private Worker[]  worker;      //所有银行职员的个人信息
 
   private Account[] account;     //所有的银行账单信息


   public Custorm[] getCus(){

     return custorm;
   } 

   public Worker[] getWor(){

     return worker;
   } 

   public Account[] getAcc(){

     return account;
   } 

}
 
class Worker{                     //银行职员
  
  private int id;

  private  String name ;
 
  private  int deptno;
  

  public int  getId(){
      
    return id;
  } 

  public String getName(){

     return name;
  }
  
 public string getdep(){
   
    return deptno;
 }

}
 class Custorm {               //顾客信息
  
   private int id;
 
   private String name;

   
   public int getId(){
       
      return id;
   }
  
   public String getName(){

       return name;
   }
}
class Account {             //账单信息
   
   private int  acId;
  
   private int  cusId;
  
   private int balance;

  
   public int getAcId(){

     return acId;  
   }

   public int getId(){
      return cusid;
   }
  
   public String getBal(){
    
     return balance;
   }

}

     在上面的几个类中,每一个类的成员属性都被修饰为private,并且提供了一个公共的方法来获取属性,这样,当其他类要访问属性时,只能通过这个方法来获取属性的值,而不能直接获取属性的值,从而做到信息的封装;这样的形式就叫封装。

 重点:四种访问修饰符的区别: 

                 <访问权限范围越小,安全性越高>

      访问权限   类   包  子类  其他包

        public      ∨      ∨    ∨          ∨           

         protected     ∨     ∨    ∨           ×    

        default     ∨     ∨     ×           ×                                                                                                                                                 

        private     ∨     ×     ×           ×                                                                                 

    一、public
     (1)定义:public是公共的,被public所修饰的成员可以在任何类中都能被访问到。
     (2)修饰的成分:
        public能用来修饰类,在一个java源文件中只能有一个类被声明为public,而且一旦有一个类为public,那这个java源文件的文件名就必须要和这个被public所修饰的类的类名相同,否则编译不能通过。说到这里,穿插多一点知识。一个类作为外部类的时候只能被public或者默认访问修饰符所修饰,但是一个类如果作为内部类的时候,则可以被四种访问修饰符所修饰,因为一个类作为内部类的时候,就作为外部类的一个成员属性了,因此可以有四种访问修饰符修饰,这是内部类和外部类的一个区别。
        public用来修饰类中成员(变量和方法),被public所修饰的成员可以在任何类中都能被访问到。通过操作该类的对象能随意访问public成员。
        public在类的继承上的体现,被public所修饰的成员能被所有的子类继承下来。
   二、protected
       (1)定义:protected是受保护的,受到该类所在的包所保护,不能用来修饰类
       (2)作用域:被protected所修饰的成员会被位于同一package中的所有类访问到。同时,被protected所修饰的成员也能被该类的所有子类继承下来。(注意:这里是指同一个package或者不同的package中的子类都能访问
   三、default(默认,缺省的)
        (1)定义:在成员的前面不写任何的访问修饰符的时候,就是默认的。
//博主亲测在任何地方写default都会报错,想用这个修饰符修饰,只能不写。
        (2)作用域:同一package中的所有类都能访问。被default所修饰的成员只能被该类所在同一个package中的子类所继承下来。(也就是说只有在同一个package中的子类才能访问到父类中default修饰的成员)。
   四、private
          (1)定义:private是私有的,即只能在当前类中被访问到,它的作用域最小。

扫描二维码关注公众号,回复: 3027480 查看本文章

             

猜你喜欢

转载自blog.csdn.net/qq_31071255/article/details/82317542