news 2026/8/28 22:22:38

编程小白从零开始认识封装

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
编程小白从零开始认识封装

封装:类的格式,系统中使用的类都是有封装的

一个类包含哪些内容:
面向对象的成员:
属性: 使用对象变量名调用
方法: 使用对象变量名调用
构造方法:
格式:没有返回值结构,且方法名是类名的方法 public 类名(){ }
创建对象的时候调用 new 类名();
作用: 用于对象创建时的初始化 (属性的初始化 和 方法初始化调用)
构造方法的重载: 重载方法
一个类中可以定义多个同名的方法 ,要求参数不一致
构造代码块: { } 也是在对象创建时执行 也可以做一些初始化操作
静态资源:static 与对象没关系 靠类名调用 特性: 唯一性
静态属性:在内存中只存在一份,类名直接调用
静态方法:类名直接调用 ,不能直接使用本类中对象成员部分
静态代码块:只会执行唯一的一次 在类被加载时调用执行
访问权限修饰符:
public : 修饰类 属性 方法 ,表示权限是公开 在项目中都可以调用
private :私有的 只能修饰类中的成员 权限是只能在本类中访问
protected: 只能在同一个包下 和 子类中访问
缺省不写 : 类中缺省不写 同一个包下 接口中缺省不写 默认public

面向对象三大特性之一:

实现对象的属性和方法的控制访问
访问权限修饰符: 限制代码调用的区域,包含公共的(public)和私有的(private)以及受保护的和缺省不写
public: 公共的 整个项目下都可以访问
修饰: 类 属性 方法
修饰类的时候,这个类的类名必须与所在文件名一致 ,且一个文件中只能包含一个public的类-主类

private:私有的 只能在本类中访问
修饰:属性 方法
**protected:**受保护的 只能在同包下,不同包的子类中也可以访问
修饰: 属性 方法
缺省不写: 类默认的 只能在同包下
修饰: 类 属性 方法

封:

受限制的修饰符修饰属性 方法等,使其不能被对象直接调用
为什么要限制?属性对于数据的要求 通常比数据类型要求更具体

装:

自己设计一组不受限制的方法,通过参数 返回值对于数据,别的方法进行访问操作
设置一组:set/get方法 用于对属性赋值 和 获取属性的值
构造方法:
创建对象时需要调用的方法 ,执行于对象初始化时
格式: 没有返回值结构,方法名为类名的方法
public 类名(){ }
每个类都默认有一个空参数的隐藏构造方法
一旦主动写了构造方法,隐式就会覆盖
通常我们通过构造方法的参数进行初始化操作

publicclassUser{privateStringname;// 必须6个字符以上privateStringpwd;// 必须包含字符以及数字privateStringemail;// 必须包含合法的域名和@符号privateintage;// 0-150// 构造方法publicUser(Stringname,Stringpwd,Stringemail,intage){this.name=name;this.pwd=pwd;this.email=email;this.setAge(age);}publicUser(){}publicUser(Stringname,Stringpwd){this.name=name;this.pwd=pwd;}publicintgetAge(){returnage;}publicvoidsetAge(intage1){// 将数据存入参数中,在方法中对参数进行验证后 再赋给属性if(age1<0||age1>150){System.out.println("年龄不合法~");return;}this.age=age1;}publicvoidshowInfo(){System.out.println("name:"+this.name+" pwd:"+this.pwd+" email:"+this.email+" age:"+this.age);}}classStudent{base08.v2}classTeacher{}classMain{publicstaticvoidmain(String[]args){Useruser=newUser("hello","123456","hello@hello.com",18);// user.email = "hello";// user.age=-100;user.setAge(-100);inta=user.getAge();System.out.println(a);user.showInfo();Useruser1=newUser();Useruser2=newUser("admin","123456");user2.showInfo();user1.showInfo();}}

总结:
代码格式更加规范 可读性更好
数据的安全性更好
读写分离

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 22:21:56

C语言字符串与内存函数进阶:从安全陷阱到高性能优化实践

1. 从“能用”到“敢用”&#xff1a;字符串与内存函数的进阶认知在C语言的世界里&#xff0c;字符串和内存操作是绕不开的坎。很多初学者在学完基础语法后&#xff0c;面对strcpy、memcpy这些函数&#xff0c;常常陷入一种“能用但不敢用”的尴尬境地。代码跑起来了&#xff0…

作者头像 李华
网站建设 2026/8/28 22:21:49

最短路径算法实战指南:从Dijkstra到A*,解决网络优化核心问题

1. 项目概述&#xff1a;从“两点之间”到“网络最优”我们常说“两点之间&#xff0c;线段最短”&#xff0c;这大概是每个人最早接触的几何直觉。但在现实世界里&#xff0c;无论是物流配送、网络路由、社交关系还是项目管理&#xff0c;我们面对的往往不是孤立的两个点&…

作者头像 李华
网站建设 2026/8/28 22:14:13

最强模型安全检查|能力隔离避坑实录

一个安全场景的新玩法正在被更多团队采用&#xff1a;不把最强的模型整包交出去&#xff0c;只把它的判断结果交出去。 某前沿模型被用于合作伙伴的防御项目&#xff0c;普通用户能拿到它定位的问题和修复补丁&#xff0c;却拿不到模型本身&#xff0c;更别提让它原样去生成攻击…

作者头像 李华
网站建设 2026/8/28 22:13:26

数学建模实战:多元回归分析核心思想、完整流程与竞赛避坑指南

1. 项目概述&#xff1a;从“清风”笔记到实战多元回归最近整理资料&#xff0c;翻到了当年备赛时记的“清风数学建模课笔记”&#xff0c;其中关于多元回归分析的部分被翻得最旧&#xff0c;页边写满了各种问题和心得。多元回归&#xff0c;这个在数学建模竞赛中出场率极高的“…

作者头像 李华
网站建设 2026/8/28 22:08:41

数学建模新生杯实战指南:从排队论到优化模型的完整解题流程

1. 项目概述&#xff1a;从“新生杯”到建模思维的第一次实战刚踏入大学校园&#xff0c;面对“数学建模”这四个字&#xff0c;很多同学的第一反应可能是既熟悉又陌生。熟悉的是“数学”&#xff0c;陌生的是“建模”&#xff0c;而“比赛”二字更是平添了几分紧张感。第十届数…

作者头像 李华
网站建设 2026/8/28 22:05:40

家里多了个24小时在线的“AI健康师”

精神障碍患者的居家康复&#xff0c;长期面临服务难到家、需求难响应的困境。传统康复服务高度依赖人工随访与线下值守&#xff0c;受时间、空间限制&#xff0c;无法实现对患者24小时的居家监护与动态服务跟进。患者家属往往独自承担照护压力&#xff0c;而基层工作人员也疲于…

作者头像 李华