Java面向对象三大特性—封装(从0到1详解,附有代码+案例)

2024-08-30 12:20

本文主要是介绍Java面向对象三大特性—封装(从0到1详解,附有代码+案例),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 封装
    • 8.3 封装概述
    • 8.4封装步骤
    • 8.4 private关键字
    • 8.5 封装案例

封装

8.3 封装概述

  • 封装可以让我们知道如何正确设计对象的属性和方法。
  • 对象代表什么,就得封装对应的数据,并提供数据对应的行为。
  • (★)隐藏内部的实现细节,对外提供一个可访问的接口

8.4封装步骤

  1. 设置属性为private
  2. 设置get和set方法
  3. 在get和set方法中添加逻辑
//例如//封装//需求:定义一个类描述人//属性:姓名,年龄//行为:吃饭,睡觉public class Preson {String name;int age;public void eat(){System.out.println("正在吃饭");}public void sleep(){System.out.println("睡觉ing...");}
}

8.4 private关键字

  • 是一个权限修饰符

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

  • private修饰的成员只能在本类中才能访问

8.5 封装案例

package code1;public class GrilFriend {// 属性private String name;private int age;private String gender;// 针对每一个私有化成员变量,都要提供get和set方法// set方法:给成员变量赋值// get方法:对外提供成员变量的值// 作用:给成员变量name进行赋值,因为只是赋值接受数据所以只传形参 无返回值,没有返回值的数据类型写void即可public void setName(String n) {name = n;}// 作用:对外提供name的属性,对外提供数据 不接受数据 所以不传参数public String getName() {return name;}// setAge:给成员变量age进行赋值public void setAge(int a) {if (a >= 18 && a <= 26) {age = a;} else {System.out.println("非法参数");}}// getAge:对外提供成员变量age的值public int getAge(){return age;}// setGender:给成员变量gender进行赋值public void setGender(String g) {gender = g;}// getGender:对外提供成员变量gender的值public String getGender() {return gender;}public void eat() {System.out.println("吃饭ing....");}public void sleep() {System.out.println("睡觉...");}
}
=======================================================public class GrilFriendTest {public static void main(String[] args) {// 创建对象GrilFriend gf = new GrilFriend();// 赋值gf.setAge(18);gf.setName("大聪明");gf.setGender("女");// String name = gf1.getName();System.out.println(gf.getAge());System.out.println(gf.getName());System.out.println(gf.getGender());gf.eat();gf.sleep();}
}

这篇关于Java面向对象三大特性—封装(从0到1详解,附有代码+案例)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1120809

相关文章

Java抽象类Abstract Class示例代码详解

《Java抽象类AbstractClass示例代码详解》Java中的抽象类(AbstractClass)是面向对象编程中的重要概念,它通过abstract关键字声明,用于定义一组相关类的公共行为和属... 目录一、抽象类的定义1. 语法格式2. 核心特征二、抽象类的核心用途1. 定义公共接口2. 提供默认实

PyQt6 键盘事件处理的实现及实例代码

《PyQt6键盘事件处理的实现及实例代码》本文主要介绍了PyQt6键盘事件处理的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起... 目录一、键盘事件处理详解1、核心事件处理器2、事件对象 QKeyEvent3、修饰键处理(1)、修饰键类

Java轻松实现PDF转换为PDF/A的示例代码

《Java轻松实现PDF转换为PDF/A的示例代码》本文将深入探讨Java环境下,如何利用专业工具将PDF转换为PDF/A格式,为数字文档的永续保存提供可靠方案,文中的示例代码讲解详细,感兴趣的小伙伴... 目录为什么需要将PDF转换为PDF/A使用Spire.PDF for Java进行转换前的准备通过

Rust 智能指针的使用详解

《Rust智能指针的使用详解》Rust智能指针是内存管理核心工具,本文就来详细的介绍一下Rust智能指针(Box、Rc、RefCell、Arc、Mutex、RwLock、Weak)的原理与使用场景,... 目录一、www.chinasem.cnRust 智能指针详解1、Box<T>:堆内存分配2、Rc<T>:

SpringBoot集成WebService(wsdl)实践

《SpringBoot集成WebService(wsdl)实践》文章介绍了SpringBoot项目中通过缓存IWebService接口实现类的泛型入参类型,减少反射调用提升性能的实现方案,包含依赖配置... 目录pom.XML创建入口ApplicationContextUtils.JavaJacksonUt

Java中的堆和栈示例详解

《Java中的堆和栈示例详解》在Java中,堆(Heap)和栈(Stack)是两种不同的内存区域,本文给大家介绍Java中的堆和栈,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前言二、栈(Stack)三、堆(Heap)四、核心区别五、代码示例六、常见问题七、总结一、前言在Jav

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

Java Docx4j类库简介及使用示例详解

《JavaDocx4j类库简介及使用示例详解》Docx4j是一个强大而灵活的Java库,非常适合需要自动化生成、处理、转换MicrosoftOffice文档的服务器端或后端应用,本文给大家介绍Jav... 目录1.简介2.安装与依赖3.基础用法示例3.1 创建一个新 DOCX 并添加内容3.2 读取一个已存

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2