java面向对象(封装)

Posted Akiyama

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java面向对象(封装)相关的知识,希望对你有一定的参考价值。

一.封装的概述

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

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

二.封装的优点

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面向对象(封装)的主要内容,如果未能解决你的问题,请参考以下文章

Java 封装

Java 封装

Java 封装

Java 封装

Java 封装

Java封装