zoukankan      html  css  js  c++  java
  • Java之封装特性

    Java中的三大特性:继承,封装,多态;

    其中封装概念封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。

    面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的

    对象,这些对象通过一个受保护的接口访问其他对象。封装是一种信息隐藏技术,在

    java中通过关键字private,protected和public实现封装。什么是封装?封装把

    对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使

    用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 适当的封装可

    以让程式码更容易理解和维护,也加强了程式码的安全性。

    那么怎么去实现封装呢?

    使用三个关键字去实现封装:

    public :(公有的):可以被该类的和非该类的任何成员访问。

    private:(私有的):仅仅可以被该类的成员访问,任何非该类的成员一概不能访问。(主要是隐藏数据来保证数据的安全性);如果需要访问可以调用它的内部类进行访问

    protected:(保护的):仅仅可以被子类和类本身还有同一个包里的类访问

    具体如何封装如下:

    public class Man {
    	// 对属性的封装,一个人的姓名,年龄,妻子都是这个对象(人)的私有属性
    	private String name;
    	private int age;
    	private Woman wife;
    	// 对该人对外界提供方法的封装,可以设定妻子,姓名,年龄也可以获得男人的姓名和年龄
    	  // 方法封装
    	public void setWife(Woman wife) {
      this.wife = wife;
      }  
    
    	public String getName() {
      return name;
      }  
    
    	public void setName(String name) {
      this.name = name;
      }  
    
    	public int getAge() {
      return age;
      }  
    
    	public void setAge(int age) {
      this.age = age;
      }  
    }  
    
    public class Woman {
    	  // 属性封装
    	  
    	private String name;  
    	private int age;  
    	private Man husband;  // 方法封装
    	  
    
    	public String getName() {
      return name;
      }  
    
    	public void setName(String name) {
      this.name = name;
      }  
    
    	public int getAge() {
      return age;
      }  
    
    	public void setAge(int age) {
      this.age = age;
      }  
    
    	public Man getHusband() {
      return husband;
      }  
    
    	public void setHusband(Man husband) {
      this.husband = husband;
      }  
    }/**
    	 * 仔细看就会发现,Man类没有提供getWife的方法,这是因为男人不想让自己的妻子被外界访问,
    	 *
    	 * 接下来呢,就是封装可以把一个对象的属性私有,而提供一些可以被外界访问的属性的方法,
    	 *
    	 * 比如说,name属性,Man和Woman类都有相应的get和set方法,外界都可以通过这些方法访问和修改
    	 *
    	 * 同时对一些对象不想让外界访问的属性,就不提供其方法,比如说Man的wife属性,就没有get方法
    	 *
    	 * 外界是不能得到Man类的wife属性的
    	 *
    	 */
    上面那例子可能没有突出封装的好处,下面来个超简单的表达下:
    
    public class Show {
    	public static void show(String str) {
    		System.out.println(str);
    	}
    }上面就是对 System.out.println();的封装。调用的时候:
    
    public class Use {
    public static void main(String[] args)
    {
    Show.show("封装");
    }
    }这样用的时候就不用使:System.out.println("封装");
    
  • 相关阅读:
    简单的代码
    js精度缺失问题
    maven将Jar安装进仓库
    上传图片,手机端压缩
    处理登录时,AJAX的状态码无权限情况
    处理html换行问题
    VMWARE网络配置内网与外网互ping
    hbase和ZooKeeper集群安装配置
    Hadoop集群部署
    redis主从配置+sentinel哨兵
  • 原文地址:https://www.cnblogs.com/jiangxifanzhouyudu/p/6612920.html
Copyright © 2011-2022 走看看