码迷,mamicode.com
首页 > 编程语言 > 详细

java面向对象(封装)

时间:2019-01-04 19:39:43      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:特征   getname   lse   结构   microsoft   耦合   封装   无法   return   

一.封装的概述

封装是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。

是面向对象思想的特征之一,面向对象共有三个特征:封装,继承,多态。

二.封装的优点

1.良好的封装能够减少耦合。

2. 类内部的结构可以自由修改。

3. 可以对成员变量进行更精确的控制。

4. 隐藏信息,实现细节。

三.封装举例(步骤)

1. 修改属性的可见性来限制对属性的访问(一般限制为private)

 

public class Person {
    private String name;
    private int age;
}

 

将 name 和 age 属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏。

 

2.对外提供公共方法访问(get&set)

public class Person{
    private String name;
    private int age;
?
    public int getAge(){
      return age;
    }
?
    public String getName(){
      return name;
    }
?
    public void setAge(int age){
      this.age = age;
    }
?
    public void setName(String name){
      this.name = name;
    }
}

四.this的解释与应用

在成员变量名前面加上this.来区别成员变量和局部变量

//在Person类中定义功能,判断两个人是否是同龄人
class Person {
    private int age;
    private String name;
    
    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void speak() {
        System.out.println("name=" + this.name + ",age=" + this.age);
    }

    // 判断是否为同龄人
    public boolean equalsAge(Person p) {
        // 使用当前调用该equalsAge方法对象的age和传递进来p的age进行比较
        // 由于无法确定具体是哪一个对象调用equalsAge方法,这里就可以使用this来代替
        /*
         * if(this.age == p.age) { return true; } return false;
         */
        return this.age == p.age;
    }
}

 

java面向对象(封装)

标签:特征   getname   lse   结构   microsoft   耦合   封装   无法   return   

原文地址:https://www.cnblogs.com/akiyama/p/10222037.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!