JAVA-封装
1、什么是封装?
顾名思义,封装就是装起来,圈起来的意思,用于类与对象中来讲,就是在一个类中把对象拥有的属性和隐藏信息(条件)进行封装,不允许外部程序直接访问,而必须要通过该类提供的方法来实现对隐藏信息的操作和访问
2、为什么要用封装?
封装后,类就是独立的,有效避免了外部错误对此对像的影响,并且能对于对象使用者由于大意产生的错误操作起到预防作用
封装的好处,就是隐藏类的实现细节,让使用者只能通过程序员规定的方法来访问数据,可以方便加入存取控制语句,限制不合理操作
减少对象之间的关联性,以降低它们之间的复杂度和依赖性
3、如何使用封装
把类的成员变量权限改为private,进行私有化控制,别的类,不能访问
默认不写的话,就是public 公共的。将public 改为private的话,别的类就不能访问该类的成员变量了
public class FengZhuang {
//将成员变量私有化,封装
private String name;
private int age;
private String sex;
}
实例代码如下:
package com.liu.u6.copy1;
/*
* 封装的使用
*/
public class FengZhuang {
//将成员变量私有化,封装
private String name;
private int age;
private String sex;
//创建带返回值类型为String的方法
public String getName(){
return name;//get到的是set的那个name
}
//不带返回值的 但带参的构造方法
public void setName(String name){
this.name=name;
} public int getAge(){
return age;
}
/******此时属性仍然没有限制作用,需要进一步利用条件判断语句进行限制*************/
/*public void setAge(int age){
this.age=age;
}*/
public void setAge(int age){
if(age>0 && age<150){
this.age=age;
}else{
System.out.println("年龄有误!");
} } public String getSex(){
return sex;
} /******此时属性仍然没有限制作用,需要进一步利用条件判断语句进行限制*************/
/*
*
public void setSex(String sex){
this.sex=sex;
}
*/
public void setSex(String sex){
if(sex.equals("男")|| sex.equals("女")){
this.sex=sex;
}else{
System.out.println("性别不合法!");
} }
//构造方法 无参
public FengZhuang(){
this.name="无名氏";
this.age=20;
this.sex="男";
} //构造方法 有参
public FengZhuang(String name,int age,String sex){
this.name=name;
this.age=age;
this.sex=sex;
} //方法 :自我介绍
public void say(){
System.out.println("自我介绍一下\r\n姓名:"+this.name+"\r\n性别:"+this.age+"\r\n年龄:"+this.age+"岁");
} }
调用类:
只能通过方法来赋值,所以你可以看得出来,上面的类中get方法,是用不着的。可以省略不写,需要用时候再写
package com.liu.u6.copy1;
public class TestFengZhuang {
public static void main(String[] args) {
FengZhuang f=new FengZhuang();
//调FengZhuang类中的set方法,,这set方法中都定义了参数,而且把参数值赋给了成员变量
f.setName("韩国");
f.setAge(20);
f.setSex("中性");
f.say();
}
}
结果输出:

JAVA-封装的更多相关文章
- 【原创】中文分词系统 ICTCLAS2015 的JAVA封装和多线程执行(附代码)
本文针对的问题是 ICTCLAS2015 的多线程分词,为了实现多线程做了简单的JAVA封装.如果有需要可以自行进一步封装其它接口. 首先ICTCLAS2015的传送门(http://ictclas. ...
- java封装的方法
java封装是由Java是面向对象程序设计语言的性质决定的,面向对象程序设计语言的三大特性之一就是封装.封装其实就是包装的意思,从专业的角度来看,就是把对象的所有组成部分组合在一起,保护私有属性. 如 ...
- Java - 24 Java 封装
Java 封装 在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外 ...
- Echarts 的 Java 封装类库 转自 https://my.oschina.net/flags/blog/316920
转自: https://my.oschina.net/flags/blog/316920 Echarts 的 Java 封装类库:http://www.oschina.net/p/echarts-ja ...
- Java-Runoob-面向对象:Java 封装
ylbtech-Java-Runoob-面向对象:Java 封装 1.返回顶部 1. Java 封装 在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细 ...
- java封装的优点
在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机 ...
- 乐字节Java|封装JavaBean、继承与权限修饰
本文继续讲Java封装.上一篇:乐字节Java|GC垃圾回收机制.package和import语句 这次讲述JavaBean.继承与权限修饰 一. 封装javaBean 封装(Encapsulatio ...
- Java 封装 继承 多态
Java 继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法 ...
- Java“封装”的例子
/*功能:Java"封装"的典型例子*/ public class Demo3_5{ public static void main(String args[]){ ...
- # 095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 03 封装总结 01 封装知识点总结
095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
随机推荐
- Git 详解
1. Git 1.1. Git是何方神圣? Git是用C语言开发的分布版本控制系统.版本控制系统可以保留一个文件集合的历史记录,并能回滚文件集合到另一个状态(历史记录状态).另一个状 态可以是不同的文 ...
- Android SQLite (五 ) 全面详解(三)
SQLite约束 约束是在表的数据列上强制执行的规则.这些是用来限制可以插入到表中的数据类型.这确保了数据库中数据的准确性和可靠性.约束可以是列级或表级.列级约束仅适用于列,表级约束被应用到整个表. ...
- 六、动态增加方法Category
1.概念:Category可以动态为已经存在的类增加一个方法,可以不改动原有的类. 2. 如何创建一个Category类创建一个文件,选择Objective-C category,点next取名时,要 ...
- 01JavaIO详解_File类
对程序语言设计者来说,设计一个令人满意的I/O系统,是件极艰难的任务.——摘自Think in java 对java而言,File表示的是文件或目录.但是我们知道文件和目录是不一样的,文件里面存放的是 ...
- Linux 守护进程一
守护进程是一个后台进程,它无需用户输入就能运行,经常是提供某种服务. LInux作为服务器,主要的进程也都是为系统或用户提供后台服务功能. 常见的守护进程有Web服务器.邮件服务器以及数据库服务器等等 ...
- 敏捷软件开发 Agile software Development(转)
原文链接: http://www.cnblogs.com/kkun/archive/2011/07/06/2099253.html 敏捷软件开发 Agile software Development ...
- Qt中通过ui怎么引用不了pushbutton呢? 原来是这样…
在Qt中打开一个项目在做, 突然想到要测量一下其中一个子系统,于是在当前环境下新建了一个项目并用qt designer 简单设计了一下ui,其中添加了pushbutton并命名为OpensourceB ...
- 初次使用C#中的yield
这几天在Python程序员的微信订阅号中总是见到yield的关键字,才想起来在C#中也是有yield,但是只是知道有,从来没有了解过他的用法,今天有时间就来看看是怎么使用的.刚开始肯定就是搜索一下用法 ...
- [转] Sublime Text 3支持GB2312和GBK编码
Sublime Text 3与Sublime Text 2的不同 其实有不少人写过如何让Sublime Text 2支持GB2312和GBK编码,例如这篇.基本原理就是先装好Package Contr ...
- JavaScript基础2---控制权DOM操作
文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM将HTML文档呈现为带有元素,属性和文本的树结构(节点树). HTML文档可以说由节点构成的 ...