当前位置: 首页 > news >正文

【Java 基础】4 面向对象 - 封装:面向对象三大特征之一

- 第 151 篇 -
Date: 2025 - 11- 16
Author: 郑龙浩(仟墨)

文章目录

  • 【Java 基础】
    • 4 面向对象 - 封装:面向对象三大特征之一
      • 4.1 封装概念
      • 4.2 private | public 关键字
      • 4.3 封装的设计要求(合理隐藏,合理暴露)

【Java 基础】

4 面向对象 - 封装:面向对象三大特征之一

4.1 封装概念

就是用类设计对象,处理某一个事物的数据时,类分为两部分:

  • 1 存储数据的成员变量
  • 2 处理存储数据的方法

这些东西封装起来,并且要合理利用private将不能被外界访问的变量隐藏起来

4.2 private | public 关键字

  • private: 私有,隐藏
  • public: 公有,公开

前者用于修饰私有成员,后者用于修饰公有成员

4.3 封装的设计要求(合理隐藏,合理暴露)

下面是一个标准的设计风格

Student.java 文件

package zhenglonghao.opp.student;
public class Student {// private 就是设置私有成员 / 方法,如下:// 私有属性,实现封装(设置私有属性后,在类外无法访问)(比如在Test.java中无法访问name属性)private String name; // private 就是设置私有属性的private int age;private double height;private double weight;private String sex;// public 设置公有成员 / 方法,如下:// 无参构造器(如果设置了有参构造器,则必须设置无参构造器,因为默认的构造器将不能被调用)public Student() {}// 有参构造器(姓名和年龄)--> 创建对象时,同时可以存入 姓名,省去了单独使用setName() setAge()进行赋值的操作public Student(String name, int age, double height, double weight, String sex) {this.name = name;this.age = age;this.height = height;this.weight = weight;this.sex = sex;}// Getter 和 Setter 方法(封装体现)// 获取 姓名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 double getHeight() {return height;}// 获取 身高public void setHeight(double height) {this.height = height;}// 获取 体重public double getWeight() {return weight;}// 设置 体重public void setWeight(double weight) {this.weight = weight;}// 获取 性别public String getSex() {return sex;}// 设置 性别public void setSex(String sex) {this.sex = sex;}// 打印信息public void printInfo() {System.out.println("姓名:" + name + ",年龄:" + age + ",身高:" + height + ",体重:" + weight);}
}

Test.java 文件

====== Test.java ======
package zhenglonghao.opp.student;public class Test {public static void main(String[] args) {// 使用无参构造器创建对象Student s1 = new Student();// 因为所有的成员变量都是 private(私有的),所以无法直接访问,需要使用 setter 方法进行赋值// setter方法就是 设置 成员变量 的方法,如s1.setName("ZZZ");就是设置姓名为ZZZ// 而所有的setter方法都是public (公有的),所以可以在类外进行调用s1.setName("ZZZ");s1.setAge(18);s1.setHeight(180);s1.setWeight(130);s1.setSex("男");// 输出信息s1System.out.println("对象s1信息:\n");s1.printInfo(); // 直接使用 public(公有) 修饰的 打印方法,可在类外进行调用System.out.println("\n------------------------\n");// 使用有参构造器创建对象// 如果直接传参进去,则就无需使用 setter 方法进行赋值Student s2 = new Student("ZLH", 18, 170, 120, "男");System.out.println("对象s2信息:\n");s2.printInfo();}
}
http://www.dtcms.com/a/618769.html

相关文章:

  • vps建设网站需要条件瀑布流资源网站模板
  • 还有做网站的必要吗识图 WordPress
  • 俄语 俄文 俄罗斯语外贸网站建设礼品定制
  • 郑州好的建网站公司wordpress 采集器
  • 轻松设置-系统优化万能工具
  • query加强之深度解析ReDI:通过分解与解释增强query理解的推理方法
  • 观点动力学和回音室
  • 中小学网站建设域名论坛网站
  • 5.网络原理之TCP_IP
  • 全球访问量top100网站建设银行官方网站-云服务
  • 小梦音乐下载 1.0.5 | 提供三条音源,支持多种音质选择和批量下载的音乐下载工具
  • GIS:揭开你神秘的面纱
  • 怎么做网站小图标有的网站域名解析错误
  • 安徽省网站肥建设网站湖北望新建设有限公司网站
  • 机器学习周报二十二
  • 计算二叉树的深度 | C语言
  • 什么网站算是h5做的网络推广企划
  • 传导案例:某医疗仪器传导骚扰整改案例
  • 做跨境电商有没推荐的网站新闻稿件代发平台
  • C++篇(18)类型转换与IO库
  • 海口中小企业网站制作3D特效做首页的网站
  • 专业做家政网站( )是网站可以提供给用户的价值
  • 网站活动专题页面学校网站建设制作方案
  • 【C++】从理论到实践:类和对象完全指南(上)
  • 网站不排名一切等于零做网站推广维护需要学些什么
  • 公考面试资源合集
  • 网站建设 预付款自己怎么做软件
  • 41、C#什么是单例设计模式
  • kafka单机版安装
  • 网站开发要求有哪些大沥南庄网站建设