封装的概念 通常情况下可以在测试类给成员变量赋值一些合法但不合理的数值(比如年龄是500). 无论是编译阶段还是运行阶段都不会报错或者给出提示, 此时与现实生活不符 为了避免上述错误的发生, 就需要

对成员变量进行密封包装处理,来隐藏成员变量的细节以及保证成员变量数值的合理性, 该机制就叫做

封装

封装的实现流程 私有化成员变量, 使用

private关键字修饰 提供公有

get和

set方法, 并在方法体中进行合理值的判断 在构造方法中调用

set方法进行合理值的判断

案例题目

提示用户输入班级的学生人数以及每个学生的信息, 学生的信息有:学号, 姓名, 最后分别打印出来

public class Student {

// 封装第一步: 将变量私有化, 加private关键字

private int id; // 自定义成员变量, 用于保存学生学号

private String name; // 自定义成员变量, 用于保存学生姓名

// 封装第三步: 在公有的构造方法中调用set方法进行合理值的判断

public Student() {

}

public Student(int id, String name) {

//this.id = id;

//this.name = name;

setId(id);

setName(name);

}

// 封装第二步: 提供公有化的get和set方法, 对变量进行合理化判断

// 公有化是加public关键字

public int getId() {

return id;

}

public String getName() {

return name;

}

public void setId(int id) { // 形参中记得加变量类型; 没有返回值要加void

if(id > 0) this.id = id;

else System.out.println("学号有误,请检查");

}

public void setName(String name) {

this.name = name;

}

// 自定义成员方法, 用于打印学生学号与姓名

// 没有任何修饰词的方法的私密级别介于private与public之间

public void show() {

//System.out.println("学号为" + id + "的学生姓名是" + name);

System.out.println("学号为" + getId() + "的学生姓名是" + getName());

}

}

封装好Student类之后,创建StudentTest测试类,对封装好的类进行测试

public class StudentTest {

public static void main(String[] args) {

// 声明Student类的引用, 指向类的对象

Student s1 = new Student();

// 对成员变量进行赋值并打印

// s1.id = -1107;

// s1.name = "wdm";

s1.setId(-1107);

s1.setName("wdm");

s1.show();

System.out.println("-----------------------");

// 使用有参方式构造方法并打印特征

Student s2 = new Student(-1108, "xx");

s2.show();

}

}

java实现封装的三步是_JAVA基础-封装相关推荐

  1. java三步 网易_Java基础:三步学会Java Socket编程·网易学院·教程

    设计原理: 服务器端接受客户端的连接请求,同时启动一个线程处理这个连接,线程不停的读取客户端输入,然后把输入加入队列中,等候处理.在线程启动的同时将线程加入队列中,以便在需要的时候定位和取出. {源码 ...

  2. java反射三种方法_Java基础入门要学哪些 怎么掌握反射和枚举

    Java基础入门要学哪些?怎么掌握反射和枚举?Java是老牌编程语言,是一种可以撰写跨平台应用软件的面向对象的程序设计语言.Java所包含的基础知识点很多,只有掌握了这些知识才能更好地运用,下面就来给 ...

  3. 三步下载有3D封装的Altium designer官方库

    Altium designer是原来Protel软件的升级版,前阵子发布了2020版本,是目前笔者用到的最好用的EDA软件. 当然,很多同学的ad都是来源于各个微信公众号.还是建议大家在自己能力范围内 ...

  4. 微信机器人 java 源码_三步轻松打造微信聊天机器人(附源码)

    最近微信公众平台开发是热门,我也跟风做了一个陪聊的公众号. 其实类似的自动回话程序早就有了,比如前一阵很火的小黄鸡(还是小黄鸭来着?).但尽管是跟风,也要体现一些不同.别人做的都是中文陪聊,咱就来做个 ...

  5. java中如何实现变量可配置_Java基础-如何配置环境变量

    Java环境变量详细教程 第一步.打开电脑环境变量设置窗口 以Win10系统为例子. 在桌面找到此电脑,右键此电脑- ->属性,点击属性- ->点击左侧高级系统设置 点击高级系统设置 点击 ...

  6. java 高并发第三阶段实战_JAVA多线程编程实战视频-第三阶段(共80节)

    高并发编程第三阶段01讲 AtomicInteger多线程下测试讲解 高并发编程第三阶段02讲 AtomicInteger API详解,以及CAS算法详细介绍 高并发编程第三阶段03讲 利用CAS构造 ...

  7. java 高并发第三阶段实战_Java 高并发第三阶段实战---Java并发包深入解析与使用详解...

    第三阶段的课程主要围绕着Java并发包的使用,展开详细的介绍,主要内容有1.原子包源码剖析,2.并发包工具类详细介绍,3.线程服务以及Future和callable等详细介绍,4.高并发容器和阻塞容器 ...

  8. java类的修改三个方面_Java 编程的动态性,第 6 部分: 利用 Javassist 进行面向方面的更改--转载...

    本系列的 第 4 部分和 第 5 部分讨论了如何用 Javassist 对二进制类进行局部更改.这次您将学习以一种更强大的方式使用该框架,从而充分利用 Javassist 对在字节码中查找所有特定方法 ...

  9. java 创建线程的三种方法_java 创建线程的几种方式

    说道线程,肯定会想到使用 java.lang.Thread.java这个类 那么创建线程也主要有2种方式 第一种方式: public class MyThread extends Thread { p ...

最新文章

  1. Java实现算法导论中求解模线性方程解(基于最大公约数欧几里得扩展算法)
  2. python类成员_Python的类成员和对象成员
  3. 机器学习中val_小波变换(七):小波变换在机器学习中的应用(下)
  4. MFC列表控件ListControl和树控件TreeControl
  5. sql server :distinct 与order by 一起使用要注意
  6. linux server.xml日志参数,Linux Log4j+Kafka+KafkaLog4jAppender 日志收集
  7. 操作系统大内核和微内核_操作系统中的内核类型
  8. maven项目添加新dependency jar后本地可正常运行,但打包后加载不上
  9. 如何获得本机ip地址
  10. 矩阵计算器+求线性代数n阶行列式代码
  11. Java完成excel表格导出
  12. 测绘类专业计算机要学什么科目,测绘类包括哪些专业
  13. 离线安装 Enhanced Class Decompiler
  14. 伽卡他卡使用教程_【伽卡他卡电子教室教师端介绍】伽卡他卡电子教室教师端特色_伽卡他卡电子教室教师端说明-最笨下载...
  15. 阿里天池离线赛_移动推荐算法
  16. 在c语言中 实参与其对应的形参各占独立的存储单元,以下正确的说法是( )。在C语言中: A.实参和与其对应的形参各占用独立的存储单元...
  17. 名帖46 北魏 楷书《镇北大将军元思墓志》
  18. 优维科技EasyOps6.0升级发布会,全程高能回顾
  19. 循环队列 (顺序存储)
  20. webview 禁用横竖屏切换_Android 禁止横竖屏切换

热门文章

  1. Spring的组件赋值以及环境属性@PropertySource
  2. 成为中国特色项目经理,走上人生巅峰
  3. c语言中的运算符及其含义_按位运算符及其在C语言中与Example一起使用
  4. Kotlin程序用于打印JVM版本的Kotlin(打印Java属性)
  5. mysql8安装目录linux7.5_Linux系统下 MySQL 5.7和8.0 版本安装指南
  6. oracle底层执行顺序,select语句结构与执行顺序-Oracle
  7. ftp连接oracle服务器,使用SSL加密连接FTP - 架建SSL安全加密的FTP服务器(图)_服务器应用_Linux公社-Linux系统门户网站...
  8. ruby array_Ruby中带有示例的Array.index()方法
  9. Java PrintWriter close()方法与示例
  10. Java SecurityManager checkAccess()方法与示例