栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java面向对象--封装

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java面向对象--封装

目录

前言

一、封装是什么?

1.封装的概念

2.封装的原则 

二、如何进行封装?

1.private关键字

2.private关键字的使用

3.this关键字

4.setXxx() / getXxx()方法

5.例子

三.封装的优点 


前言

早期的计算机编程是基于面向过程的方法,例如实现算术运算1+1+2=4,通过设计一个算法就可以解决当时的问题。随着计算机技术的不断提高,计算机被用于解决越来越复杂的问题。一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象与数宇建模。通过面向对象的方法,更利于用人理解的方式对复杂系统进行分析、设计与编程。同时,面向对象能有效提高编程的效率,通过封装技术,消息机制可以像搭积木的一样快速开发出一个全新的系统。面向对象是指一种程序设计范型,同时也是一种程序开发的方法。        


一、封装是什么?

1.封装的概念

        封装是面向对象三大特征之一,是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的。

将属性私有化,提供公有方法访问私有属性。通过这些公有方法访问私有属性。

2.封装的原则 

        将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过改类提供的方法来实现对隐藏信息的操作和访问成员变量private,提供对应的getXxx()和setXxx()方法。

二、如何进行封装?

1.private关键字

① 是一个权限修饰符。

② 可以修饰成员(成员变量和成员方法)。

③ 作用保护成员不被别的类使用,被private修饰的成员只在本类中才能访问。    

2.private关键字的使用
    //修饰成员变量
    private String title;
    private int pageNum;
    //修饰成员方法
    private void c() {
        System.out.println("cc");
    }

针对被private修饰的成员变量,如果需要被其他类使用,提供相应的操作 :

①  提供"get变量名()"方法,用于获取成员变量的值,方法用public修饰。

②  提供"set变量名(参数)"方法,用于设置成员变量的值,方法用public修饰。

3.this关键字

this修饰的变量用于指代成员变量

①  方法的形参如果于成员变量同名,不带this修饰的变量指的是形参而不是成员变量。

②  方法的形参没有与成员变量名,不带this修饰的变量指的是成员变量。

4.setXxx() / getXxx()方法

get变量名()set变量名(参数)

[注] getXxx() / setXxx() 方法,get和set后的变量名首字母大写。

    private String name;
    private int age;

    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;
    }

        set和get方法可以自己键盘输入,也可以按ALT+INSERT快捷键输入(熟练以后),写完被privat修饰的成员变量后,按下ALT+INSERT后出现这个界面,选择相对应的。

        添加方法的时候把带参和无参的方法都要写上,因为如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法。推荐无论是否使用都手动书写无参数构造方法。

5.例子
public class Demo {
    private String hobby;
    private String name;
    private int age;
    //无参
    public String getHobby() {
        return hobby;
    }
    //有参
    public void setHobby(String hobby) {
        this.hobby = hobby;
    }
    //无参
    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 String toString() {
        return "我叫" + name + ",今年" + age + "岁," + "爱好" + hobby;
    }
}

测试类:

package Mar0328.fengzhuang;

public class Test {
    public static void main(String[] args) {
        Demo d = new Demo();      //创建一个Demo类的对象命名为d
        d.setName("费迪南德");     //调用set方法给其赋值
        d.setHobby("开赛车");     //调用set方法给其赋值
        d.setAge(18);     //调用set方法给其赋值
        System.out.println(d);     //输出语句
    }
}

结果:

我叫费迪南德,今年18岁,爱好开赛车

Process finished with exit code 0

三.封装的优点 
    通过方法来控制成员变量的操作,提高了代码的安全性。把代码用方法进行封装,提高了代码的复用性。减少耦合: 可以独立地开发、测试、优化、使用、理解和修改减轻维护的负担: 可以更容易被程序员理解,并且在调试的时候可以不影响其他模块有效地调节性能: 可以通过剖析确定哪些模块影响了系统的性能降低了构建大型系统的风险: 即使整个系统不可用,但是这些独立的模块却有可能是可用的

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785010.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号