java实现封装的三步是_JAVA基础-封装

封装的概念 通常情况下可以在测试类给成员变量赋值一些合法但不合理的数值(比如年龄是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();

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552664.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java中广告维护轮播图怎么做_Banner广告轮播图

需求描述轮播图也是大部分app都有的效果,商品类跟新闻类的app是肯定会有的。轮播图的效果跟第一次启动时的引导页类似,不过轮播图在引导页的基础上多了几个功能:在第一页也能向左滑动,在最后一页也能向右滑动有个计时器,每隔一段时间滚动轮播…

java addcallback函数_java中怎么使用callback函数?

UYOU在很多场景,作为开发都会想到,在执行完毕一个任务的时候,能执行一个callback函数是多么好的事情。现在模拟一下这个情景:定义三个类。分别是主函数类。callback函数的接口类。业务处理类。在业务处理类中,处理完业…

oracle 数据抽取 java_oracle数据抽取步骤

oracle数据抽取步骤Database links:1、 在本地计算机上,新建一个连接远程数据库的连接,并记住这个连接的服务名(例如:jzfx_remote);2、 返回远程数据库的GLOBAL_NAME:执行:SELECT * FROM GLOBA…

在java中的交换方法有哪些_java中交换两个变量的值有哪几种方法,交换两个变量a和b的值...

java中交换两个变量的值有哪几种方法在Java中,有哪些方法可以交换两个变量的值,方法:1.定义临时变量2.没有必要定义临时变量3.使用位运算符(学习视频分享:java课程)代码示例:公共类SwapTest {公共静态void main(String…

java修改原有txt文件_(转)Java创建txt文件并进行读、写、修改操作

Creation date: 2007-12-18 - 下午06:48:45 */ public class ReadWriteFile { public static BufferedReader bufread; //指定文件路径和名称 private static String path "D:/suncity.txt"; private static File filename new File(path); private static String …

java暂停另一个线程_如何从另一个线程终止或暂停Rust线程?

对于终止和挂起线程,您可以使用通道 .外部终止在工作循环的每次迭代中,我们检查是否有人通过渠道通知我们 . 如果是,或者如果通道的另一端超出范围,我们就会打破循环 .use std::io::{self, BufRead};use std::sync::mpsc::{self, …

java 7 jboss_JBoss7 入门指南

1、下载地址: http://www.jboss.org/jbossas/downloads ,下载Certified Java EE 6 Full Profile版本。2、解压 jboss-as-7.1.1.Final.zip 到 D:\programs。3、设置环境变量如下:系统变量->新建->变量名:JAVA_HOME C:\Java以…

java实现bloom filter_Java BloomFilter.add方法代码示例

import org.apache.hadoop.util.bloom.BloomFilter; //导入方法依赖的package包/类Overridepublic int run(String[] args) throws Exception {if (args.length ! 4) {System.err.println("Usage: Trainer ");return 1;}// Parse command line argumentsPath inputFi…

java系统项目分为哪五大层次?控制层_业务_一个项目中说系统分为表现层、控制层、逻辑层、DAO层和最终数据库五层架构-转...

表现层就是看到的东西,比如你现在看到的当前页面控制层就将你的请求从页面传到后台代码逻辑层就是处理你的请求的代码DAO层就是将数据存到数据库中的代码数据库就是数据库了,存东西用的,DAO层就是将访问数据库的代码,数据库层是数…

opc客户端读取数据品质是bad_听说看了这篇文章就彻底搞懂了什么是OPC(上)

从2000年初以来,我们就一直在使用OPC软件互操作性标准,而那些正准备踏入和想要踏入工业自动化领域的人们却对这些含义感到困惑。所以在本中,我将系统地为你梳理OPC知识。OPC首字母缩写词代表什么?问一个OPC老手,他们或…

java怎么将程序保存在桌面_在Java桌面应用程序中保留数据的最佳方法是什么?...

我的桌面应用程序中有一大堆Java对象,我试图决定将文件作为文件系统的最佳方式.我曾经有过一些想法:>使用DataOutputStream滚动我自己的串行器:这将给我最大的控制文件中的内容,但是以微量管理为代价.>使用ObjectOutputStream及其各种相关类的直接…

JAVA实现inotify一样的功能_WPF实现INotifyPropertyChanged

我已经设置了一个属性并实现了INotifyPropertyChanged像这样......public event PropertyChangedEventHandler PropertyChanged;public FlowProcess LastSelectedFlowProcess{get { return _lastSelectedFlowProcess; }set{_lastSelectedFlowProcess value;Notify("LastS…

php导入json文件_[php]导入超大json文件

前言在之前的文章《做一个twitter的插件玩玩》中,我做了一个批量删除推文(转发推文)的工具,该工具能够删除前3200条推文,但因为总数太多(4.3万条),api接口不支持获取所有的推文,所以我采用了下载的方式,直接…

php 生成dbf,php 读取vfp 8.0,9.0所产生的dbf文件

VFP 9.0 PHP odbc求大神指导。。。由VFP8.0以上制造的DBF文件,自带的Tabel Type> autoinc field 或者Blob field,想通过PHP读取,不行吗?代码很简单如下》$add’c://BatMan//Daten//ladert2.DBF’;$e”Driver{Microsoft Visual …

linux怎样写java代码,linux 怎么写java

linux 怎么写java一、环境安装由于使用 yum 或者 apt-get 命令 安装 openjdk 可能存在类库不全,从而导致用户在安装后运行相关工具时可能报错的问题,所以此处我们推荐采用手动解压安装的方式来安装 JDK。具体步骤如下:1.下载 JDK进入Oracle官…

java登陆密码验证失败,java用户名密码验证示例代码分享

类:NameII 权限:public方法:main 权限:public参数:name,password,denglu,i;参数介绍:name,数据类型 String ,用来存储一个从 input 中获取的值,在本程序当中用作用户名的存放;password,数据类型 String &#xf…

php 五角星,php使用GD库画五角星_PHP教程

01 $width 500;02 $height 500;0304 $im imagecreatetruecolor($width, $height);0506 $red imagecolorallocate($im, 230, 0, 0);07 imagefill($im, 0, 0, $red);0809 $yellow imagecolorallocate($im, 255, 255, 0);1011 //设定画出五角星的五个顶点形成的 正五边形的边…

java的配置文件后缀,Java - 敏感配置文件位置

0x00 前言项目中常遇到Java站点,像SSM、springboot这些框架开发的通常一些配置文件都在固定的位置,当然还有Tomcat容器的配置文件。0x01 记录1.properies配置文件这个文件的作用很重要,通常是一个JavaWeb项目中的配置文件,以.prop…

apmserv 5.2.6 升级php,APMServ5.2.6 升级PHP版本 到高版本 5.3,5.4

Thursday, December 12, 2013 1:59 AM 17173606 php-5.3.28-Win32-VC9-x86.zipranhou 然后解压,得到一个新的目录:把原来APMServ目录中的PHP目录中的:ext , extras 两个目录复制过来,遇到重复文件,不要覆盖…

php原生sql语句删除,PHP 的批量删除sql语句

PHP 的批量删除sql语句发布于 2014-10-07 22:57:44 | 92 次阅读 | 评论: 0 | 来源: 网友投递PHP开源脚本语言PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门…