广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >java面向对象——封装
  • 863
分享到

java面向对象——封装

java入门java面向对象封装 2021-02-06 13:02:33 863人浏览 才女
摘要

概述面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。 封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的方式。适当的封装可以让代码更容易理

概述

面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。 封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的方式。

适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。

原则

将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问。

封装的步骤

使用 private 关键字来修饰成员变量。

对需要访问的成员变量,提供对应的一对 getXxx 方法 、 setXxx 方法。

java学习视频推荐:java在线教程

封装的操作—private关键字

private的含义:

private是一个权限修饰符,代表最小权限,可以修饰成员变量和成员方法,被private修饰后的成员变量和成员方法,只在本类中才能访问。

private的使用格式

private 数据类型 变量名 ;

使用 private 修饰成员变量,代码如下:

4d9bfa18dfc7bdbfdb8ce2bd1a5cac7.png

提供 getXxx 方法 / setXxx 方法,可以访问成员变量,代码如下:

0f3938ce0c1ad753f6d7ed8d53d5b0e.png

封装优化1——this关键字

我们发现 setXxx 方法中的形参名字并不符合见名知意的规定,那么如果修改与成员变量名一致,是否就见名知意了呢?代码如下:

c1bceebc35d8772b5d55c939e90ceeb.png

经过修改和测试,我们发现新的问题,成员变量赋值失败了。也就是说,在修改了 setXxx() 的形参变量名后,方 法并没有给成员变量赋值!这是由于形参变量名与成员变量名重名,导致成员变量名被隐藏,方法中的变量名,无法访问到成员变量,从而赋值失败。所以,我们只能使用this关键字,来解决这个重名问题。

this的含义

this代表所在类的当前对象的引用(地址值),即对象自己的引用。

记住 :方法被哪个对象调用,方法中的this就代表那个对象。即谁在调用,this就代表谁。

this使用格式:

this.成员变量名;
public class Student {  
	private String name;  
	private int age;
	public void setName(String name) {
		//name = name;  
		this.name = name;
	}
	public String getName() {  
		return name;
	}
	public void setAge(int age) {
		//age = age; 
		this.age = age;
	}
	public int getAge() {  
		return age;
	}
}

提示:方法中只有一个变量名时,默认也是使用 this 修饰,可以省略不写。

封装优化2——构造方法

当一个对象被创建时候,构造方法用来初始化该对象,给对象的成员变量赋初始值。

提示:无论你与否自定义构造方法,所有的类都有构造方法,因为Java自动提供了一个无参数构造方法, 一旦自己定义了构造方法,Java自动提供的默认无参数构造方法就会失效。

构造方法的定义格式:

aacd70e320c4d9eebaaf87d4ecef060.png

构造方法的写法上,方法名与它所在的类名相同。它没有返回值,所以不需要返回值类型,甚至不需要void。使用 构造方法后,代码如下:

1388bb0028cd87aaf75aa19c7c7247c.png

注意事项:

如果你不提供构造方法,系统会给出无参数构造方法。

如果你提供了构造方法,系统将不再提供无参数构造方法。

构造方法是可以重载的,既可以定义参数,也可以不定义参数。

标准代码——JavaBean

JavaBean 是 Java语言编写类的一种标准规范。符合 JavaBean 的类,要求类必须是具体的和公共的,并且具有无 参数的构造方法,提供用来操作成员变量的 set 和 get 方法。

3ae85190ab6c65da5ffcf327eef10ee.png

编写符合 JavaBean 规范的类,以学生类为例,标准代码如下:

84132a85cca2d6e0fb3f1170d7597ff.png

测试类,代码如下:

public class TestStudent {
	public static void main(String[] args) {
		//无参构造使用
		Student s= new Student();  
		s.setName(" 柳 岩 "); 
		s.setAge(18);
		System.out.println(s.getName()+"‐‐‐"+s.getAge());
		//带参构造使用
		Student s2= new Student(" 赵 丽 颖 ",18);  
		System.out.println(s2.getName()+"‐‐‐"+s2.getAge());
	}
}

推荐相关文章教程:java语言入门

--结束END--

本文标题: java面向对象——封装

本文链接: https://www.lsjlt.com/news/4218.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java面向对象——封装
    概述面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。 封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的方式。适当的封装可以让代码更容易理...
    99+
    2021-02-06
    java入门 java 面向对象 封装
  • Java面向对象如何封装
    这篇文章主要讲解了“Java面向对象如何封装”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java面向对象如何封装”吧!1.认识封装简单的一句话就是套壳屏蔽细节。比如说一部手机,里面有电池,...
    99+
    2023-06-30
  • Java 面向对象 之 封装方法
    转载于 : http://www.verejava.com/id=16992728331734 public class Encapsulation {public static&...
    99+
    2023-06-02
  • Java全面分析面向对象之封装
    目录什么是封装呢封装的好处意义getter方法和setter方法toString方法面向对象封装之包自定义包什么是封装呢 封装就是一种将数据和操作数据的方法进行有机结合,一种函数抽象...
    99+
    2022-11-13
  • Java面向对象的封装你了解吗
    目录面向对象思想之封装什么是封装呢?封装的好处意义getter方法和setter方法toString方法总结:面向对象思想之封装 或许大家都听说过java是纯面向对象语言,面向对象思...
    99+
    2022-11-13
  • Java 面向对象和封装全面梳理总结
    关于面向对象和封装的个人理解 类和对象 类:对事物的一种描述(具有共同属性和行为的事物的抽象),例如手机,属性:品牌价格,行为:玩游戏,刷vx; 对象:客观存在(在java中体现就是...
    99+
    2022-11-12
  • Java面向对象特性深入刨析封装
    目录1.认识封装2.控制访问权限-访问修饰符3.理解封装必须要知道-包3.1理解包的概念3.2 导入包中的类3.3 自定义包3.4 包的访问权限控制3.5 java中常见的包前面已经...
    99+
    2022-11-13
  • python 面向对象之class和封装
    # 封装 # Python并没有真正的私有化支持,但可用下划线得到伪私有 访问私有变量:实例._类名__变量名 访问私有方法:实例._类名__方法名() class Wife02(...
    99+
    2022-11-12
  • 面向对象封装、继承、多态
    一、面向对象封装   01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 —— 将 属性 和 方法 封装 到一个抽象的 类 中 外界 使用 类 创建 对象,然后 让对象调用方法 对象方法的细节 都被 封装...
    99+
    2023-01-31
    面向对象 多态
  • AJPFX:关于面向对象的封装
    回顾        面向对象 -- 注重的是结果,强调的是具备功能的对象。        面向过程 -- 强调的是函数,注重的实现的过程。  &nbs...
    99+
    2023-06-02
  • Java面向对象的封装特征深度解析
    目录面向对象三大特征封装private关键字——实现类封装访问器方法和更改器方法包——类的集合导入包从人的角度理解包不加访问权限——实现包封装总结在上一篇文章中,我们了解了面向对象的...
    99+
    2022-11-12
  • Python面向对象中的封装详情
    目录一 封装的概念二 _ 和__ 对属性和方法的私有化1. 单下划线_2. 双下划线__3. 子类中访问父类的私有属性和私有方法三 访问及修改类的私有属性和私有方法1. 自定义公有方...
    99+
    2022-11-13
  • PHP面向对象编程怎么对对象进行封装
    这篇文章主要讲解了“PHP面向对象编程怎么对对象进行封装”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP面向对象编程怎么对对象进行封装”吧!我们今天为大家介绍的是关于PHP面向对象编程的...
    99+
    2023-06-17
  • Python面向对象编程之类的封装
    目录1、封装的理解2、私有类属性、公开类属性、私有实例属性和公开实例属性2.1 公开类属性2.2 私有类属性2.3 公开实例属性2.4 私有实例属性2.5 私有属性不一定真的私有3、...
    99+
    2022-11-12
  • 详解JavaScript面向对象实战之封装拖拽对象
    目录概述1、如何让一个DOM元素动起来2、如何获取当前浏览器支持的transform兼容写法3、如何获取元素的初始位置5、我们需要用到哪些事件?6、拖拽的原理7、我又来推荐思维导图辅...
    99+
    2022-11-12
  • 详细理解JAVA面向对象的封装,继承,多态,抽象
    目录类和对象的使用(面向对象思想落地的实现):子类对象实例化的全过程1.从结果上看:(继承性)2.从过程上来看:1.封装性2.继承性继承性的好处:3.多态性虚拟方法调用4.抽象性1....
    99+
    2022-11-12
  • Java面向对象基础知识之封装,继承,多态和抽象
    目录一、封装二、继承三、多态四、抽象总结一、封装 封装:是面向对象方法的重要原则,就是把对象的属性和行为(数据)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,就是把不想告诉或...
    99+
    2022-11-12
  • Java面向对象编程(封装/继承/多态)实例解析
    本文主要介绍了面向对象的三大特征实例解析,下面看看具体内容。封装封装一个Teacher和Student类package com.hz.test;public class Teacher { private String name; pr...
    99+
    2023-05-30
    java 面向对象 ava
  • Python面向对象中封装的概念是什么
    这篇文章将为大家详细讲解有关Python面向对象中封装的概念是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一 封装的概念封装其实在我们的生活中处处都是,如电视机,电脑,手机等物品。我们通常只能看到其...
    99+
    2023-06-29
  • PHP中封装性与面向对象编程的关系
    在面向对象编程中,封装性是一个非常重要的概念。它允许开发者将数据和方法包装在一个类中,并通过对外提供接口来访问和操作数据,同时隐藏内部的实现细节。在PHP中,封装性与面向对象编程密不可分。封装性的主要目的是实现信息隐藏。通过将数据和方法封装...
    99+
    2023-10-21
    PHP 面向对象编程 封装性
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作